git diff
Afficher les différences entre vos fichiers, la zone de préparation et les commits
La commande 'git diff' montre exactement les lignes modifiées. Sans argument, elle compare vos fichiers de travail avec la zone de préparation — les modifications pas encore préparées. Avec --staged, elle compare la zone de préparation avec le dernier commit — ce que contiendra votre prochain commit. Donnez-lui des commits ou des branches pour comparer deux versions quelconques du projet.
Synopsis
git diff [<options>] [<commit>] [--] [<path>...]
git diff [<options>] --staged [<commit>] [--] [<path>...]
git diff [<options>] <commit> <commit> [--] [<path>...]Options
Choisir la bonne option
Ce que compare git diff
Choisissez les deux côtés à comparer
| Commande | Côté gauche | Côté droit |
|---|---|---|
git diff | Zone de préparation | Fichiers de travail |
git diff --staged | Dernier commit | Zone de préparation |
git diff HEAD | Dernier commit | Fichiers de travail |
git diff A B | Commit A | Commit B |
Exemples
Modifications non préparées
git diffCe qui a changé dans vos fichiers mais n’est pas encore préparé.
Modifications préparées
git diff --stagedCe que contiendra le prochain commit.
Deux commits
git diff HEAD~1 HEADCe que le dernier commit a changé.
Deux branches
git diff main feature/loginTout ce qui diffère entre deux branches.
Exemples de workflows
git diffRelire ce que vous avez modifié
git add app.jsLe préparer
git diff --stagedRelire ce qui sera committé
git commit -m "Add to cart"Commit
git diff main...feature/login --statLes fichiers modifiés par la branche depuis qu’elle s’est séparée de main
git diff main...feature/loginLes modifications complètes
Dépannage
git diff n’affiche rien alors que des fichiers ont changé
Cause : Les modifications sont déjà préparées
Utilisez git diff --staged (ou git diff HEAD pour les deux)
Un nouveau fichier manque dans le diff
Cause : Les fichiers non suivis ne sont pas comparés
Préparez-le avec git add, puis utilisez git diff --staged
Tout le fichier apparaît modifié
Cause : Les fins de ligne ou les espaces ont changé
Essayez git diff -w pour ignorer les espaces et vérifiez core.autocrlf
Astuces et pièges
Bonnes pratiques
- ✓Relisez git diff --staged avant chaque commit.
- ✓Sur les gros changements, commencez par --stat, puis lisez les détails.
- ✓Comparez les branches avec trois points (main...branch) pour ne voir que ce que la branche a ajouté.
Erreurs fréquentes
- ✗S’attendre à ce que git diff montre les modifications préparées — ce n’est pas le cas ; utilisez git diff --staged.
- ✗S’attendre à voir les fichiers non suivis dans git diff : les nouveaux fichiers n’apparaissent qu’une fois ajoutés.
- ✗Inverser l’ordre de deux commits : git diff A B montre comment passer de A à B.
FAQ
git diff --staged (ou son synonyme git diff --cached).
git diff HEAD compare le dernier commit avec vos fichiers de travail.
git show <commit>, ou git diff <commit>~1 <commit>.