La commande git diff permet d'afficher les différences introduites:
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.
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 de tous les fichiers ayant divergé entre les deux branches:
$ git diff master..branch
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
Affiche les logs des commits divergeants entre deux branches:
$ git log master..branch $ git shortlog master..branch