ver pendientes modificados log historial commits cambios archivos archivo antes git git-log

modificados - git ver commits pendientes



Ver el historial de cambios de un archivo utilizando la versiĆ³n de Git (21)

Usuarios de SourceTree

Si usa SourceTree para visualizar su repositorio (es gratis y bastante bueno) puede hacer clic derecho en un archivo y seleccionar Registrar seleccionado

La pantalla (a continuación) es mucho más amigable que gitk y la mayoría de las otras opciones enumeradas. Desafortunadamente (en este momento) no hay una manera fácil de iniciar esta vista desde la línea de comandos: la CLI de SourceTree actualmente solo abre repos.

¿Cómo puedo ver el historial de cambios de un archivo individual en Git, detalles completos con lo que ha cambiado?

He llegado tan lejos como:

git log -- [filename]

lo que me muestra el historial de confirmación del archivo, pero ¿cómo obtengo el contenido de cada uno de los cambios del archivo?

Estoy tratando de hacer la transición desde MS SourceSafe y eso solía ser un simple right-clickshow history .


Últimamente descubrí el tig y lo encontré muy útil. Hay algunos casos en los que me gustaría que lo hiciera A o B, pero la mayoría de las veces es bastante ordenado.

Para su caso, tig <filename> podría ser lo que está buscando.

http://jonas.nitro.dk/tig/


Agrega este alias a tu .gitconfig:

[alias] lg = log --all --graph --pretty=format:''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset''/n--abbrev-commit --date=relative

Y usa el comando así:

> git lg > git lg -- filename

La salida se verá casi exactamente igual que la salida de gitk. Disfrutar.


Con las excelentes extensiones de Git , usted va a un punto en el historial donde aún existía el archivo (si se ha eliminado, de lo contrario, vaya a HEAD), cambie a la pestaña del File tree , haga clic derecho en el archivo y elija File history .

De forma predeterminada, sigue el archivo a través de los renombrados, y la pestaña Blame permite ver el nombre en una revisión determinada.

Tiene algunos errores menores, como mostrar resultados fatal: Not a valid object name en la pestaña View al hacer clic en la revisión de eliminación, pero puedo vivir con eso. :-)


Escribí git-playback para este propósito exacto

pip install git-playback git playback [filename]

Esto tiene la ventaja de que ambos muestran los resultados en la línea de comandos (como git log -p ), mientras que también le permiten pasar por cada confirmación usando las teclas de flecha (como gitk ).


La respuesta que estaba buscando y que no estaba en este hilo es ver los cambios en los archivos que había preparado para confirmar. es decir

git diff --cached


O:

gitx -- <path/to/filename>

si estas usando gitx


Para esto yo usaría:

gitk [filename]

o seguir el nombre de archivo pasado renombrados

gitk --follow [filename]


Para mostrar qué revisión y autor modificó por última vez cada línea de un archivo:

git blame filename

o si quieres usar la poderosa GUI de la culpa:

git gui blame filename


Puedes usar

git log -p filename

para permitir que git genere los parches para cada entrada de registro.

Ver

git help log

para más opciones, en realidad puede hacer muchas cosas bonitas :) Para obtener el diferencial de un compromiso específico, puede

git show HEAD

o cualquier otra revisión por identificador. O usar

gitk

Para navegar los cambios visualmente.


Resumen de otras respuestas después de leerlas y jugar un poco:

El comando de línea de comando habitual sería

git log --follow --all -p dir/file.c

Pero también puedes usar gitk (gui) o tig (text-ui) para obtener formas mucho más fáciles de ver para los humanos.

gitk --follow --all -p dir/file.c tig --follow --all -p dir/file.c

Bajo debian / ubuntu, el comando de instalación para estas herramientas encantadoras es el esperado:

sudo apt-get install gitk tig

Y actualmente estoy usando:

alias gdf=''gitk --follow --all -p''

de modo que solo pueda escribir gdf dir para obtener un historial centrado de todo en subdirectorio dir .


Si desea ver el historial completo de un archivo, incluso en todas las demás ramas, utilice:

gitk --all <filename>


Si está utilizando eclipse con el complemento git, tiene una excelente vista de comparación con el historial. Haga clic derecho en el archivo y seleccione "comparar con" => "historial"


Si está utilizando la GUI git (en Windows) en el menú Repositorio, puede usar "Visualizar el historial del maestro". Resalte una confirmación en el panel superior y un archivo en la parte inferior derecha y verá la diferencia para esa confirmación en la parte inferior izquierda.


Si prefiere mantenerse basado en texto, puede utilizar tig .

Instalación rápida:

  • apt-get : # apt-get install tig
  • Homebrew (OS X) : $ brew install tig

Úselo para ver el historial en un solo archivo: tig [filename]
O navegar por la historia detallada de repos: tig

Similar a gitk pero basado en texto. Soporta colores en terminal!


Si usa TortoiseGit, debería poder hacer clic derecho en el archivo y hacer TortoiseGit --> Show Log . En la ventana que aparece, asegúrese de:

  • Show Whole Project opción " Show Whole Project " no está marcada.

  • La opción '' All Branches '' está marcada.


También puede probar esto, que enumera las confirmaciones que han cambiado una parte específica de un archivo (Implementado en Git 1.8.4).

El resultado devuelto sería la lista de confirmaciones que modificó esta parte en particular. El comando va como

git log --pretty=short -u -L <upperLimit>,<lowerLimit>:<path_to_filename>

donde upperLimit es el número_inicial_inicial y lowerLimit es el número_línea_inicial del archivo.


git whatchanged -p filename también es equivalente a git log -p filename en este caso.

También puede ver cuándo se cambió una línea específica de código dentro de un archivo con el git blame filename . Esto imprimirá un breve ID de confirmación, el autor, la marca de hora y la línea de código completa para cada línea del archivo. Esto es muy útil después de haber encontrado un error y desea saber cuándo se introdujo (o quién tuvo la culpa).


git diff -U <filename> proporciona una diferencia unificada.

Debe ser de color rojo y verde. Si no lo es, ejecuta: git config color.ui auto primero.


git log --follow -p -- file

Esto mostrará el historial completo del archivo (incluido el historial más allá de los nombres y con diferencias para cada cambio).

En otras palabras, si el archivo llamado bar una vez se llamó foo , entonces git log -p bar (sin la opción --follow ) solo mostrará el historial del archivo hasta el momento en que se le cambió el nombre, no mostrará el Historial del archivo cuando era conocido como foo . El uso de git log --follow -p bar mostrará el historial completo del archivo, incluidos los cambios en el archivo cuando se conocía como foo . La opción -p garantiza que se incluyan diffs para cada cambio.


SmartGit :

  1. En el menú habilitar para mostrar archivos sin cambios: Ver / Mostrar archivos sin cambios
  2. Haga clic derecho en el archivo y seleccione ''Registro'' o presione ''Ctrl-L''