Parfois, lorsque je suis sur le point de faire un commit, je ne me souviens pas exactement de ce qui a changé depuis le dernier commit. Comment puis-je voir un diff de l'état actuel du code et du dernier commit?
93
Si vous n'avez pas encore ajouté de fichiers à l'index (avec git add
), faites simplement
git diff
Cela montrera la différence entre votre arbre de travail et votre index.
Si vous avez ajouté des fichiers à l'index, vous devez le faire pour afficher les différences entre l'index et le dernier commit (HEAD).
git diff --cached
Enfin, si vous voulez voir les modifications apportées dans l'arborescence de travail par rapport au dernier commit ( HEAD
), vous pouvez (comme le souligne Carlos)
git diff HEAD
Ces changements sont la combinaison de git diff
et git diff --cached
.
git diff
compare l'arbre de travail à l'index, pas à HEAD.git diff
l'état de l'index et le commit précédent dans un message diff?git diff --cached HEAD^
:)Si vous venez de faire un commit, ou si vous voulez voir ce qui a changé dans le dernier commit par rapport à l'état actuel (en supposant que vous ayez un arbre de travail propre), vous pouvez utiliser:
Cela comparera le HEAD avec le commit juste avant. On pourrait aussi faire
pour comparer à l'état de jeu 2 commits auparavant. Pour voir la différence entre l'état actuel et un certain commit, faites simplement:
Où
b6af6qc
est un exemple de hachage de validation.la source
HEAD^
est le commit avant le dernier commit.Vous demandez à git de différencier le commit actuel / dernier, qui a un raccourci de
HEAD
.Nous
git diff HEAD
allons donc comparer l'état actuel de l'arbre de travail avec le commit actuel.la source
cela montre également la différence et quels fichiers ont été changés / modifiés.
Affiche les chemins qui ont des différences entre le fichier d'index et le commit HEAD actuel, les chemins qui ont des différences entre l'arborescence de travail et le fichier d'index, et les chemins dans l'arbre de travail qui ne sont pas suivis par git (et ne sont pas ignorés par gitignore (5) ). Le premier est ce que vous commettriez en exécutant git commit; les deuxième et troisième sont ce que vous pouvez valider en exécutant git add avant d'exécuter git commit.
https://www.kernel.org/pub/software/scm/git/docs/git-status.html
la source
Cela fonctionne aussi pour moi:
Cela fonctionne généralement pour une histoire linéaire. Cela pourrait devenir plus délicat s'il existe également des validations de fusion. Je vous recommande de regarder dans ce document pour une explication agréable et complète, en particulier cet exemple d'illustration d'arbre de validation:
https://git-scm.com/docs/gitrevisions
la source