Cuando utilizo un argumento <path>
con git log --stat
para limitar el registro a compromete la modificación de <path>
, listas git <path>
como el único archivo modificado cuando mostrar las confirmaciones seleccionados. En cambio, me gustaría ver rutas modificadas enumeradas para cada confirmación seleccionada.Cómo hacer que `git log --stat - <path>` muestre * todos * los archivos en commits seleccionados?
Por ejemplo:
$ echo test > a.txt
$ echo test > b.txt
$ git add a.txt b.txt
$ git commit -m test
[...]
2 files changed, 2 insertions(+), 0 deletions(-)
[...]
$ git log -n1 --stat
[...]
a.txt | 1 +
b.txt | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
$ git log -n1 --stat -- a.txt
[...]
a.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
Tenga en cuenta que el segundo git log
, con el argumento de ruta a.txt
, dice "1 archivos cambiados", cuando en realidad "2 archivos cambiados". Me gustaría que git me diga que tanto a.txt
como b.txt
han cambiado, aunque I seleccionó la confirmación según la ruta a.txt
.
ACTUALIZACIÓN: @jacknagel respondió mi pregunta, pero resulta que su solución no funciona en mi caso de uso real. En mi caso de uso real, estoy buscando todas las confirmaciones que modificaron un archivo, incluidos los cambios de nombre, en un caso en que dos proyectos relacionados divergieron. Necesito descubrir qué cambios en un proyecto implican cambios correspondientes (tengo que hacer) en el otro proyecto. Desafortunadamente, git
se queja cuando trato de usar --full-diff
y --follow
al mismo tiempo.
Por lo tanto, en mi situación real, estoy tratando de correr:
git log --stat --follow -- a.txt
y una solución que funciona en este caso es:
git log --format='%H' --follow -- a.txt | xargs git show --stat -C
Lo que nunca le preguntas no tiene mucho sentido para mí. ¿Cómo espera que un comando se comporte de una manera diferente a la prevista? Cuando le das el nombre de archivo le dices a git que obtenga los detalles de ese archivo solo. Si quiere que se muestren ambas cosas, use el comando – positron
@positron: estoy usando el nombre del archivo para identificar los commits de intereses, pero para esos commits quiero la información completa. En esencia, estoy usando el nombre de archivo dado para identificar otros nombres de archivos * desconocidos de interés. Entonces, no puedo decirle a 'git' los otros archivos, porque no sé cuáles son. – ntc2
En lugar de editar su * pregunta * para agregar una respuesta, la forma de StackOverflow es agregar una respuesta, incluso si es su propia pregunta. Me he tomado la libertad de agregar la respuesta correcta, pero con mucho gusto la eliminaré si la publicas tú mismo – djeikyb