{{tag>dev git}} ====== 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 ===== * http://stackoverflow.com/questions/822811/showing-which-files-have-changed-between-git-branches