¿Cómo puedo ver confirmaciones anteriores con git culpable?

Resuelto Aidan Steele asked hace 13 años • 14 respuestas

¿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 uncrustifyproyecto):

$ 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?

Aidan Steele avatar Feb 24 '11 05:02 Aidan Steele
Aceptado
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-revopció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 logpara 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.

Amber avatar Feb 23 '2011 22:02 Amber

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".

Navneet avatar Sep 04 '2015 11:09 Navneet

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! :)

ThorSummoner avatar May 19 '2014 23:05 ThorSummoner