Passer au contenu
GitTree
Guides Git5 minutes de lecture

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

Mis à jour
  • 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 ?

Ce que chaque forme de git diff compare
Tu veux voirCommande
Les changements ne sont pas encore organisésgit diff
Ce que contiendra le prochain commitgit diff --staged
Tout depuis le dernier commitgit diff HEAD
Deux commitsgit diff <a> <b>
Deux branches, pointe à pointegit diff main feature
Quelle branche ajoutée depuis qu'elle s'est séparéegit diff main...feature
Deux balisesgit diff v1.0 v2.0
Un fichiergit 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 7c1d9ab

Comment 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/main

Comment 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.txt

Comment faire en sorte que git diff ignore les espaces ?

Options d'espaces pour git diff
OptionsCe qu'il ignore
-w ou --ignore-all-spaceTous les espaces, y compris les lignes réindentées
-b ou --ignore-space-changeModifications de la quantité d'espaces
--ignore-space-at-eolEspace en fin de ligne
--ignore-blank-linesAjout 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...feature

Comment puis-je voir quels mots ont changé ?

git diff --word-diff
git diff --color-words

Les 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 -y

Comment lire une différence côte à côte dans GitTree

  1. Ouvrir un différentiel

    Sélectionnez un fichier modifié dans vos modifications de travail ou dans n'importe quelle validation.

  2. 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.

  3. 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.

  4. 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.

Basculer une différence vers la vue Split dans GitTree : avant et après, côte à côte.
Basculer une différence vers la vue Split dans GitTree : avant et après, côte à côte.Interface GitTree avec un référentiel de démonstration.

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é.