134 votes

Voir la différence entre l'état actuel et le dernier commit

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 une différence entre l'état actuel du code et le dernier commit ?

161voto

Klas Mellbourn Points 6771

Si vous n'avez pas encore ajouté de fichiers à l'index (avec la commande git add ), il suffit de faire

git diff

Cela montrera la différence entre votre arbre de travail et l'index.

Si vous avez ajouté des fichiers à l'index, vous devez le faire pour montrer les différences entre l'index et le dernier commit (HEAD).

git diff --cached

Enfin, si vous voulez voir les changements effectués dans l'arbre de travail par rapport au dernier commit ( HEAD ) vous pouvez (comme le souligne Carlos) faire

git diff HEAD

Ces changements sont la combinaison de git diff y git diff --cached .

47voto

tallamjr Points 195

Si vous venez de faire un commit, ou si vous voulez voir ce qui a changé dans le dernier commit comparé à l'état actuel (en supposant que vous avez un arbre de travail propre) vous pouvez utiliser :

git diff HEAD^

Ceci va comparer le HEAD avec le commit immédiatement précédent. On peut aussi faire

git diff HEAD^^

pour comparer avec l'état des lieux il y a 2 commits. Pour voir la différence entre l'état actuel et un certain commit, il suffit de faire :

git diff b6af6qc

b6af6qc est un exemple de hash de validation.

7voto

Avez-vous déjà essayé git show ?

DESCRIPTION : Affiche un ou plusieurs objets (blobs, arbres, tags et commits).

Pour les commits, il montre le message de log et la différence textuelle. Il présente également présente également le commit de fusion dans un format spécial tel que produit par git diff-tree --cc.

extrait de l'aide git

Vous n'avez pas besoin d'écrire HEAD ou le SHA-1 du dernier commit, tapez seulement git show .

Je pense qu'il serait utile pour vos besoins tout comme les autres réponses mais avec un peu moins de frappe et plus d'informations selon les cas.

J'ajoute ici un échantillon de ce que git show montre réellement :

>> git show

commit 49832d33b5329fff95ba0a86002ee8d5a762f3ae (HEAD -> my_new_branch, master)
Author: Abimael Domínguez <my_mail@mail.com>
Date:   Thu Jan 7 13:05:38 2021 -0600

    This is the commit message of the last commit

diff --git a/some_folder/some_file.txt b/some_folder/some_file.txt
index 59fb665..5c36cde 100644
--- a/some_folder/some_file.txt
+++ b/some_folder/some_file.txt
@@ -3,6 +3,6 @@
 This is the content of the last updated file
 some text
 some text
-text deleted
+text added
 some text
 some text

5voto

dekdev Points 1323

Cela montre aussi la différence et quels fichiers ont été changés/modifiés.

$ git status 

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'arbre 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)). Les premiers sont ce que vous commettriez en exécutant git commit ; les seconds et troisièmes sont ce que vous pourriez commettre en exécutant git add avant d'exécuter git commit.

https://www.kernel.org/pub/software/scm/git/docs/git-status.html

4voto

Vous demandez à git de différencier le commit actuel/dernier, ce qui a un raccourci de HEAD .

Alors git diff HEAD va comparer l'état actuel de l'arbre de travail avec le commit actuel.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X