Tutoriel Git - diff pour comparer les différences
- Vérifier les différences entre la copie de travail et le référentiel
- Git diff outils externes
- Vérifier les différences entre la staging area et le référentiel
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 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
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