2011-12-20 11 views
5

Me acabo de enterar que a uno de mis archivos de prueba le faltan unas 20 líneas en la parte superior.¿Cómo puedo averiguar cuándo se eliminó una parte de un archivo en git?

Hace poco estuve tratando de dominar VIM, así que supongo que de alguna manera pude borrar esas líneas sin que yo siquiera lo notara y luego enviarlas al repositorio.

Ahora la pregunta es: ¿cuál es la mejor manera de averiguar cuándo sucedió esto? ¿Cómo puedo saber cuándo se borró algo?

Respuesta

5

Encuentra una revisión R en el que existía aquellos línea, a continuación, utilizar

git blame --reverse $R..HEAD <file> 

Esto le mostrará que los elimina.

Si no puede encontrar una revisión de esta índole, pero que recuerde una cadena (decir 'test_database') contenida en las líneas que faltan, se puede utilizar la función de pico para buscar confirmaciones implican que la cadena:

git log -Stest_database <file> 
+0

En realidad, "git blame --reverse" no le dirá quién borró las líneas directamente. Te dice la última revisión en la que existieron las líneas. Entonces, ¿cómo se encuentra la revisión culpable que realmente eliminó la línea? Así es como me di cuenta de cómo hacerlo: tome la revisión LR de la salida 'git blame --reverse', luego haga esto:' git log --reverse --ancestry-path $ LR..HEAD ', y la la primera entrada es un candidato, llámala C. Luego, usa 'git show $ C' para verificar, y si no es lo que estás buscando, comienza de nuevo con git blame, reemplazando R con C. – jbyler

Cuestiones relacionadas