A veces, cuando estoy a punto de realizar una confirmación, no puedo recordar exactamente qué ha cambiado desde la última confirmación. ¿Cómo puedo ver una diferencia del estado actual del código y la última confirmación?
93
Si aún no ha agregado ningún archivo al índice (con git add
), simplemente haga
git diff
Esto mostrará la diferencia entre su árbol de trabajo y el índice.
Si ha agregado archivos al índice, debe hacer esto para mostrar las diferencias entre el índice y la última confirmación (HEAD).
git diff --cached
Finalmente, si desea ver los cambios realizados en el árbol de trabajo en comparación con la última confirmación ( HEAD
), puede (como señala Carlos) hacer
git diff HEAD
Esos cambios son la combinación de git diff
y git diff --cached
.
git diff
compara el árbol de trabajo con el índice, no HEAD.git diff
el estado del índice y la confirmación anterior en un mensaje de diferencia?git diff --cached HEAD^
:)Si acaba de realizar una confirmación, o desea ver qué ha cambiado en la última confirmación en comparación con el estado actual (asumiendo que tiene un árbol de trabajo limpio), puede usar:
Esto comparará el HEAD con el compromiso inmediatamente anterior. También se podría hacer
para comparar con el estado de juego hace 2 confirmaciones. Para ver la diferencia entre el estado actual y una determinada confirmación, simplemente haz lo siguiente:
Donde
b6af6qc
es un ejemplo de un hash de confirmación.fuente
HEAD^
es la confirmación antes de la última confirmación.Le pides a git que difiera la confirmación actual / última, que tiene una abreviatura de
HEAD
.Entonces
git diff HEAD
comparará el estado actual del árbol de trabajo con la confirmación actual.fuente
esto también muestra la diferencia y qué archivos se han cambiado / modificado.
Muestra las rutas que tienen diferencias entre el archivo de índice y la confirmación HEAD actual, las rutas que tienen diferencias entre el árbol de trabajo y el archivo de índice, y las rutas en el árbol de trabajo que no son seguidas por git (y no son ignoradas por gitignore (5) ). Los primeros son lo que comprometería ejecutando git commit; el segundo y el tercero son lo que podría confirmar ejecutando git add antes de ejecutar git commit.
https://www.kernel.org/pub/software/scm/git/docs/git-status.html
fuente
Esto también funciona para mí:
Esto suele funcionar para un historial lineal. Esto podría volverse más complicado si también hay confirmaciones de fusión. Le recomiendo que consulte este documento para obtener una explicación agradable y completa, especialmente el ejemplo de la ilustración del árbol de confirmación:
https://git-scm.com/docs/gitrevisions
fuente