Pregunta ¿Cómo se muestra el nombre de archivo modificado solo con git log? [duplicar]


Esta pregunta ya tiene una respuesta aquí:

¿Es capaz de mostrar cambios? nombre del archivo solo con git log?


74
2018-01-08 02:40


origen


Respuestas:


Gracias por sus respuestas, @mvp, @xero, obtengo lo que quiero en base a sus dos respuestas.

git log --name-only 

o

git log --name-only --oneline

para abreviar.


121
2018-01-09 02:40



supongo que tu podrías usar el --name-only bandera. algo como:

git log 73167b96 --pretty="format:" --name-only

yo personalmente uso git show para ver los archivos modificados en una confirmación

git show --pretty="format:" --name-only 73167b96

(73167b96 podría ser cualquier nombre de compromiso / etiqueta)


33
2018-01-08 21:14



Esto le da casi lo que necesita:

git log --stat --oneline

Confirmar ID + corto aún queda una línea, seguida de una lista de archivos modificados por esa confirmación.


23
2018-01-08 04:19



Me encontré aquí buscando una respuesta similar sin la restricción "git log". Las respuestas aquí no me dieron lo que necesitaba, pero esto fue así y lo agregaré en caso de que otros lo encuentren útil:

git diff --name-only

También puede asociar esto con los punteros de confirmación estándar para ver qué ha cambiado desde una confirmación en particular:

git diff --name-only HEAD~3
git diff --name-only develop
git diff --name-only 5890e37..ebbf4c0

Esto proporciona sucintamente nombres de archivo solamente que es ideal para secuencias de comandos. Por ejemplo:

git diff --name-only develop | while read changed_file; do echo "This changed from the develop version: $changed_file"; done

#OR

git diff --name-only develop | xargs tar cvf changes.tar

16
2017-09-08 23:45



Ahora utilizo lo siguiente para obtener la lista de archivos modificados que tiene mi rama actual, comparándola con el maestro (la rama de comparación se cambia fácilmente):

git log --oneline --pretty="format:" --name-only master.. | awk 'NF' | sort -u

Antes, solía confiar en esto:

git log --name-status <branch>..<branch> | grep -E '^[A-Z]\b' | sort -k 2,2 -u

que genera una lista de archivos solo y su estado (agregado, modificado, eliminado):

A   foo/bar/xyz/foo.txt
M   foo/bor/bar.txt
...

los -k2,2 opción para ordenar, hace que se ordene por ruta de archivo en lugar de por tipo de cambio (A, M, D,).


7
2018-04-07 08:01



Si necesitas sólo nombres de archivos como:

dir/subdir/file1.txt
dir/subdir2/file2.sql
dir2/subdir3/file6.php

(que utilizo como fuente de alquitrán comando) también deberá filtrar los mensajes de confirmación.

Para hacer esto uso el siguiente comando:

git log --name-only --oneline | grep -v '.{7} '

El comando Grep excluye (-v param) cada línea que comienza con siete símbolos (que es la longitud de mi git hash para git log comando) seguido de espacio. Entonces filtra cada idiota hash message línea y dejar solo líneas con nombres de archivo.

Una mejora útil es agregar uniq para eliminar líneas duplicadas para que se vea como sigue:

git log --name-only --oneline | grep -v '.{7} ' | uniq


6
2018-06-04 10:35