Ver el historial de GIT de archivos movidos

80

A pesar de leer muchas otras publicaciones sobre GIT y archivos movidos, todavía me cuesta entender cómo rastrear el historial completo. Hacer lo gitk myfileque se sugiere aquí parece mostrar solo el historial hasta el movimiento anterior. Entiendo que GIT no rastrea archivos, solo su contenido. Entonces, ¿debería poder ver la evolución completa de un archivo, incluso si se ha movido?

¿Alguien puede dirigirme a un ejemplo / tutorial bueno pero simple?

Me gustaría ver un ejemplo en el que algunos archivos se mueven, cambian y confirman, luego se muestra el historial de un solo archivo, se mueve y todo. He estado mirando 'log' pero eso parece referirse a los registros. Todavía agradecería algún consejo, incluso si dice que de alguna manera todavía estoy pensando demasiado en SVN.

Pengin
fuente

Respuestas:

110

Intente usar la --followopción paragit log :

git log --follow file.txt
Greg Hewgill
fuente
7
Tenga en cuenta que actualmente el --followmecanismo está atornillado y no funciona en algunos casos de esquina.
Jakub Narębski
2
Si es así fatal: ambiguous argument 'file.txt': unknown revision or path not in the working tree, pruebe git log --follow
file.txt
2
@nealmcb agregando el -- antes de la ruta / a / archivo era exactamente lo que faltaba. Funcionó muy bien después de agregar eso. ¡Gracias!
bkidd
1

Úselo git logcon ambos --followy --patchque mostrará el registro con el cambio de nombre de / renombrar a la salida. Y no olvide el --antes de la ruta del archivo.

git log --follow --patch -- path/to/file.ext

Por ejemplo, el historial del archivo testdir/more-testing.txten mi sistema muestra:

Date:   Wed Mar 18 14:48:07 2020 -0700

   renamed file

diff --git a/testdir/testing.txt b/testdir/more-testing.txt
similarity index 100%
rename from testdir/testing.txt
rename to testdir/more-testing.txt

commit feb58d3ab8e8ce940f80499df0c46e8fc8caf679
Author: Igal <redacted>
Date:   Wed Mar 18 14:47:18 2020 -0700

   moved test.txt to subdirectory and renamed

diff --git a/test.txt b/testdir/testing.txt
similarity index 100%
rename from test.txt
rename to testdir/testing.txt

commit 34c4a7cebaeb0df5afb950972d69adea6b1a7560
Author: Igal <redacted>
Date:   Wed Mar 18 14:45:58 2020 -0700

   added test.txt

diff --git a/test.txt b/test.txt
new file mode 100644
index 000000000..0527e6bd2
--- /dev/null
+++ b/test.txt
@@ -0,0 +1 @@
+This is a test
(END)

isapir
fuente