2009-11-23 22 views
108

Con Subversion podría usar TortoiseSVN para ver el historial/registro de un archivo.¿Cómo ver el historial de archivos en Git?

¿Cómo puedo hacer esto con Git?

Solo estoy buscando un registro de historial para un archivo en particular, y luego la capacidad de comparar las diferentes versiones.

Respuesta

133

Usa git log para ver el historial de confirmaciones. Cada confirmación tiene un especificador de revisión asociado que es una clave hash (por ejemplo, 14b8d0982044b0c49f7a855e396206ee65c0e787 y b410ad4619d296f9d37f0db3d0ff5b9066838b39). Para ver la diferencia entre dos confirmaciones diferentes, utilizar git diff con los primeros caracteres de los especificadores de revisión de ambas confirmaciones, de este modo:

# diff between commits 14b8... and b410... 
git diff 14b8..b410 
# only include diff of specified files 
git diff 14b8..b410 path/to/file/a path/to/file/b 

Si desea obtener una visión general sobre todas las diferencias que sucedieron a partir de comprometerse a comprometerse, utilice git log o git whatchanged con la opción de parche:

# include patch displays in the commit history 
git log -p 
git whatchanged -p 
# only get history of those commits that touch specified paths 
git log path/a path/b 
git whatchanged path/c path/d 
+6

Gracias por la sugerencia -p, es muy útil para encontrar las revisiones que implican un poco de código. –

82

Parece que quiere git diff y/o git log. También puedes ver gitk

gitk path/to/file 
git diff path/to/file 
git log path/to/file 
+24

Gracias a la trayectoria de gitk/a/archivo – zzapper

+3

Aquí hay otro movimiento de cabeza para gitk, que proporciona una gran manera de navegar por todas las instantáneas de un único archivo en un repositorio git. – Bitmanic

+0

GitK es el chico de oro aquí. – Jonathan

26

también se podría utilizar para un buen tig, navegador de repositorios Git basado en ncurses. Para ver el historial de un archivo:

tig path/to/file 
+3

No sabía que podía hacer esto con 'tig'. Perfecto. – mrak

10

Muchos navegadores historia de Git, incluyendo git log (y 'git log --graph'), gitk (en Tcl/Tk, parte de Git), QGit (en Qt), tig (interfaz de modo de texto a git, usando ncurses), Giggle (en GTK +), TortoiseGit y la ruta de acceso de soporte git-cheetah (por ejemplo, gitk path/to/file).

+1

¿Puede indicarme cómo configurar esto en TortoiseGit? –

+0

@ RobertVuković Sé que esta es una vieja pregunta ... ¡pero mira mi respuesta a continuación! – bluevoodoo1

5

Por supuesto, si quiere algo lo más parecido posible a TortoiseSVN, puede usar TortoiseGit.

32

me gusta usar gitk name_of_file

Esto demuestra una buena lista de los cambios que ocurrieron en un archivo en cada confirmación, en lugar de mostrar los cambios a todos los archivos. Hace que sea más fácil rastrear algo que sucedió.

2

TortoiseGit también proporciona un command line tool para ver el historial de un archivo. El uso de PowerShell:

C:\Program` Files\TortoiseGit\bin\TortoiseGitProc.exe /command:log /path:"c:\path\to\your\file.txt" 
15

Mi favorito es git log -p <filename>, que le dará un historial de todas las confirmaciones de archivo dado, así como los diferenciales para cada confirmación.

1

git log --all -- path/to/file debería funcionar

+0

No hay ningún enlace en mi respuesta @ineersa –

Cuestiones relacionadas