¿Cómo puedo ver confirmaciones anteriores con git culpable?
¿Es posible ver quién editó una línea específica antes de la confirmación informada por git blame
, como un historial de confirmaciones para una línea determinada?
Por ejemplo, ejecuto lo siguiente (en el excelente uncrustify
proyecto):
$ git blame -L10,+1 src/options.cpp
^fe25b6d (Ben Gardner 2009-10-17 13:13:55 -0500 10) #include "prototypes.h"
¿Cómo puedo saber quién editó esa línea antes de la confirmación fe25b6d
? ¿Y quién lo editó antes de ese compromiso?
git blame -L 10,+1 fe25b6d^ -- src/options.cpp
Puede especificar una revisión para que git culpe retroceda a partir de (en lugar del valor predeterminado de HEAD
); fe25b6d^
es el padre de fe25b6d
.
Editar: Nuevo en Git 2.23 , tenemos la --ignore-rev
opción agregada a git blame
:
git blame --ignore-rev fe25b6d
Si bien esto no responde a la pregunta de OP de proporcionar la pila de confirmaciones (la usará git log
para eso, según la otra respuesta), es una mejor manera de encontrar esta solución, ya que potencialmente no culpará a las otras líneas.
Puedes usar git log -L para ver la evolución de un rango de líneas.
Por ejemplo :
git log -L 15,23:filename.txt
significa "rastrear la evolución de las líneas 15 a 23 en el archivo llamado filename.txt".
La respuesta de Amber es correcta pero no la encontré clara; La sintaxis es:
git blame {commit_id} -- {path/to/file}
Nota: se --
utiliza para separar el sha1 en forma de árbol de las rutas de archivo relativas. 1
Por ejemplo:
git blame master -- index.html
¡Todo el crédito para Amber por saberlo todo! :)