Outils pour utilisateurs

Outils du site


dev:git:difference
,

Afficher les différences sous git

La commande git diff permet d'afficher les différences introduites:

  • entre deux commits,
  • entre l'espace de travail et un commit
  • etc.

Utilisée sans argument, la commande compare l'index (zone d'assemblage pour le prochain commit) et le répertoire de travail. Si une divergence apparaît, la sortie de la commande git diff l'affiche:

$ git diff
diff --git a/src/init.c b/src/init.c
index 2f8dbac..89e990d 100644
--- a/src/init.c
+++ b/src/init.c
@@ -1,4 +1,5 @@
 # Definition de la fonction intialisation.
 int init()
 {
+   Modification apres insertion dans l'index
 }

Dans ce cas, la version présente dans l'espace de travail contient une ligne de plus. Pour mettre à jour l'index avec la version de l'espace de travail:

$git add -u
 
# ou équivalent
$ git add --update

Après mise à jour de l'index, la commande git diff ne retourne plus de différence.

Fichiers modifiés

Affiche les noms de fichiers ayant divergé entre deux branches:

$ git diff --name-status master..modif-enfant

ou avec l'option --stat pour afficher une estimation des modifications par fichiers:

 git diff --stat --color master..modif-enfant

Différences entre branches

diff de tous les fichiers ayant divergé entre les deux branches:

$ git diff master..branch

Différences entre les deux révisions d'un fichier

Il est possible de comparer deux révisions d'un fichier. Les trois propositions ci-dessous sont équivalentes et permettent de comparer les modifications approtées entre la révision courante du fichier main.c et celle existante deux commits en arrière.

git diff HEAD^^ HEAD main.c
$ git diff HEAD^^..HEAD -- main.c
$ git diff HEAD~2 HEAD -- main.c

De facon générale on pourra utiliser la syntaxe:

git diff rev_hash_1 rev_hash_2 -- file

diff sur les logs

Affiche les logs des commits divergeants entre deux branches:

$ git log master..branch
$ git shortlog master..branch

Références

dev/git/difference.txt · Dernière modification : 2021/03/29 10:13 de 92.154.112.189