Comment utiliser git diff : commits, branches, fichiers et côte à côte
Une commande compare votre dossier de travail, la zone de préparation, les validations, les branches et les balises. Voici quel formulaire utiliser pour chacun, pourquoi deux points et trois points diffèrent et comment obtenir une véritable différence côte à côte.
Écrit par Kodmora
L'éditeur de logiciels derrière GitTree
- Historique de validation
- Branches
- Commits
Sur cette page
`git diff` sans argument affiche les modifications que vous n'avez pas préparées. `git diff --staged` montre ce que contiendra le prochain commit et `git diff main feature` compare deux branches. Ajoutez -- path/to/file à n'importe quel formulaire pour le limiter à un seul fichier. Git lui-même n'a pas de vue côte à côte dans le terminal. Pour cela, vous avez besoin de git difftool ou d'une interface graphique Git.
De quelle commande git diff ai-je besoin ?
| Tu veux voir | Commande |
|---|---|
| Les changements ne sont pas encore organisés | git diff |
| Ce que contiendra le prochain commit | git diff --staged |
| Tout depuis le dernier commit | git diff HEAD |
| Deux commits | git diff <a> <b> |
| Deux branches, pointe à pointe | git diff main feature |
| Quelle branche ajoutée depuis qu'elle s'est séparée | git diff main...feature |
| Deux balises | git diff v1.0 v2.0 |
| Un fichier | git diff -- src/search.ts |
Comment lire la sortie de git diff ?
diff --git a/src/search.ts b/src/search.ts
index 4e1f2a0..9b3c7d1 100644
--- a/src/search.ts
+++ b/src/search.ts
@@ -12,7 +12,7 @@ export function search(query: string) {
const terms = tokenize(query);
- return index.find(terms, { limit: 20 });
+ return index.find(terms, { limit: 50 });
}---et+++nomment l'ancienne et la nouvelle version du fichier.@@ -12,7 +12,7 @@est un en-tête de morceau : 7 lignes à partir de la ligne 12 dans chaque version.- Les lignes commençant par
-ont été supprimées, les lignes avec+ont été ajoutées, le reste est une question de contexte.
La leçon de lecture des différences pratique cela étape par étape.
Comment comparer deux commits ?
# any two commits, older first
git diff 3e52f10 7c1d9ab
# the last commit against the one before it
git diff HEAD~1 HEAD
# one commit against its parent, with the message
git show 7c1d9abComment comparer deux branches ?
# the tips of both branches
git diff main feature
# only what feature added since it left main
git diff main...feature
# a remote branch
git fetch origin
git diff main origin/mainComment comparer un fichier ?
# working copy against the last commit
git diff HEAD -- src/search.ts
# the same file on two branches
git diff main feature -- src/search.ts
# a file at two commits
git diff HEAD~3 HEAD -- src/search.ts
# two files outside any repository
git diff --no-index old.txt new.txtComment faire en sorte que git diff ignore les espaces ?
| Options | Ce qu'il ignore |
|---|---|
-w ou --ignore-all-space | Tous les espaces, y compris les lignes réindentées |
-b ou --ignore-space-change | Modifications de la quantité d'espaces |
--ignore-space-at-eol | Espace en fin de ligne |
--ignore-blank-lines | Ajout ou suppression de lignes vides |
Ceux-ci affectent uniquement ce que le différentiel montre. Ils ne changent pas ce qui est indexé ou validé. -w est celui à atteindre lorsqu'une réindentation modifie l'apparence d'un fichier entier.
Comment lister uniquement les fichiers modifiés ?
# names only
git diff --name-only main...feature
# names with A, M, D or R
git diff --name-status main...feature
# lines added and removed per file
git diff --stat main...featureComment puis-je voir quels mots ont changé ?
git diff --word-diff
git diff --color-wordsLes différences de mots sont utiles avec les longues lignes, telles que les paragraphes Markdown, où un mot modifié marque la ligne entière comme modifiée.
Comment puis-je obtenir une différence côte à côte ?
Plain git diff imprime une seule colonne et n'a pas d'option côte à côte. Vous avez trois façons d'obtenir deux colonnes : pointez git difftool sur un programme de comparaison, installez un pager de terminal tel que delta ou utilisez une interface graphique Git.
# pick a tool once
git config --global diff.tool vimdiff
# open each changed file in it
git difftool main...feature
# skip the prompt for each file
git difftool -yComment lire une différence côte à côte dans GitTree
Ouvrir un différentiel
Sélectionnez un fichier modifié dans vos modifications de travail ou dans n'importe quelle validation.
Choisissez la vue
Sous Vue Diff au-dessus du différentiel, choisissez Hunk, Inline ou Split. Split affiche l'avant et l'après côte à côte.
Ajustez-le
Dans la palette de commandes, exécutez Ignorer les espaces dans les différences, Mettre en surbrillance les mots modifiés ou Envelopper les lignes de différence.
Comparez deux branches
Exécutez Comparer les références… pour sélectionner deux branches, balises ou validations et voir les modifications depuis leur base de fusion ou d'un bout à l'autre.

Voir choisir et utiliser une vue différentielle et comparer les références pour chaque option.
Questions fréquemment posées
Pourquoi git diff ne montre-t-il rien ?
Vos modifications sont probablement indexées. git diff compare le dossier de travail avec la zone de préparation, alors exécutez git diff --staged ou git diff HEAD. Les nouveaux fichiers non suivis n'apparaissent jamais tant que vous ne les avez pas ajoutés.
Quelle est la différence entre git diff et git status ?
git status répertorie les fichiers modifiés. git diff affiche les lignes modifiées à l'intérieur.
Comment comparer ma branche avec main ?
Exécutez git diff main...HEAD pour voir uniquement le travail de votre branche. Récupérez d'abord et utilisez origin/main pour comparer avec la dernière version distante.
Est-ce que git diff --cached est le même que --staged ?
Oui. Ce sont deux noms pour la même option.
Comment enregistrer une différence dans un fichier ?
Exécutez git diff > changes.patch. Vous pouvez appliquer le fichier plus tard, comme indiqué dans comment créer et appliquer un correctif.
Sources
Les allégations concernant d'autres produits ont été vérifiées par rapport à leurs pages officielles sur 7 novembre 2026. Les prix et les fonctionnalités changent ; les pages des fournisseurs sont la source de vérité.
