Tutoriel Git - diff pour comparer les différences

Jinku Hu 30 janvier 2023
  1. Vérifier les différences entre la copie de travail et le référentiel
  2. Git diff outils externes
  3. Vérifier les différences entre la staging area et le référentiel
Tutoriel Git - diff pour comparer les différences

Nous vous montrerons comment visualiser les modifications ou les différences entre votre copie de travail, c’est-à-dire les fichiers sur lesquels vous travaillez dans les fichiers principaux, et le référentiel. Dans la deuxième partie, nous vous montrerons comment comparer entre la zone de transit et le référentiel.

Vérifier les différences entre la copie de travail et le référentiel

Une fois que nous avons enregistré un fichier, ce fichier sur une copie de travail est différent de celui de notre dépôt. Mais comment voir exactement ces changements ? Parce que parfois nous avons fait des changements à un fichier et nous voulons voir celui du dépôt et cela arrive souvent quand vous travaillez avec du code parce que vous voulez savoir exactement les changements que vous faites et comment cela va affecter le projet principal.

Donc la première chose que nous pouvons faire est de vérifier le status git et vous trouvez qu’un fichier est modifié, ce qui signifie qu’il est différent de celui du projet principal ou du dépôt principal. Si vous tapez git diff et appuyez sur entrée, il va vous montrer les différences.

$ git diff
diff --git a/test1.txt b/test1.txt
index e1dd8e3..448ad04 100644
--- a/test1.txt
+++ b/test1.txt
@@ -1,2 +1,2 @@
-This is my first Git repository.
-New added text.
\ No newline at end of file
+This was my first Git repository.
+This line is updated.
\ No newline at end of file

Le texte rouge dans la bash de git montre ce qui est dans le dépôt et le vert indique comment le texte est modifié.

Si vous avez plus de fichiers mis à jour après le dernier commit, Git va lister les différences de fichiers une par une.

Git diff outils externes

Si vous n’êtes pas habitué à l’outil diff par défaut de git, vous pouvez configurer l’outil diff à votre convenance.

Nous allons vous montrer comment configurer kdiff3 comme l’outil diff, merge de Git.

Changer le répertoire du fichier .gitconfig

Dans le système d’exploitation Windows, ouvrez le fichier .gitconfig dans le répertoire C:\Users\username et ajoutez le texte au fichier,

[diff]
    tool = kdiff3
[difftool "kdiff3"]
    path = "C:/Program Files/KDiff3/kdiff3.exe"
    trustExitCode = false
[difftool]
    prompt = false
[merge]
    tool = kdiff3
[mergetool "kdiff3"]
    path = "C:/Program Files/KDiff3/kdiff3.exe"
    trustExitCode = false
[mergetool]
    keepBackup = false

Ici, path est le chemin installé de kdiff3, et il pourrait être différent de votre côté.

Configurez difftool via git bash

Vous pouvez aussi configurer le difftool ou le mergetool en utilisant la commande dans git bash.

git config --global --add merge.tool kdiff3
git config --global --add mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add mergetool.kdiff3.trustExitCode false

git config --global --add diff.guitool kdiff3
git config --global --add difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add difftool.kdiff3.trustExitCode false
git config --global --add difftool.prompt false

Elle a fait essentiellement la même chose que vous modifiez le contenu du fichier .gitconfig.

Vérifier les différences entre la staging area et le référentiel

Vous pouvez utiliser la commande git difftool pour examiner la différence entre le fichier de votre copie de travail et celui du dépôt.

Git Difftool-kdiff3

git diff montre la différence entre la copie de travail et le référentiel, et après que le fichier soit déjà ajouté à la zone de transit, git diff ne montrera aucune différence de ce fichier parce qu’il ne compare pas la zone de transit avec le référentiel, c’est pourquoi il semble que tout soit à jour, même si ce fichier est toujours différent de celui de votre référentiel.

La bonne commande pour comparer la zone de staging et le référentiel est d’ajouter l’option --staged derrière git diff.

$ git diff --staged
diff --git a/test1.txt b/test1.txt
index e1dd8e3..448ad04 100644
--- a/test1.txt
+++ b/test1.txt
@@ -1,2 +1,2 @@
-This is my first Git repository.
-New added text.
\ No newline at end of file
+This was my first Git repository.
+This line is updated.
\ No newline at end of file
Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook