Git Tutorial - diff zum Vergleich der Unterschiede

Jinku Hu 15 Februar 2024
  1. Unterschiede zwischen der Arbeitskopie und dem Projektarchiv prüfen
  2. Git diff externe Werkzeuge
  3. Unterschiede zwischen der Staging Area und dem Repository prüfen
Git Tutorial - diff zum Vergleich der Unterschiede

Wir werden Ihnen zeigen, wie Sie die Änderungen oder Unterschiede zwischen Ihrer Arbeitskopie, also den Dateien, an denen Sie in den Hauptdateien arbeiten, und dem Repository anzeigen können. Im zweiten Teil zeigen wir Ihnen, wie Sie den Vergleich zwischen dem Bereitstellungsbereich und dem Projektarchiv durchführen können.

Unterschiede zwischen der Arbeitskopie und dem Projektarchiv prüfen

Sobald wir eine Datei gespeichert haben, ist diese Datei in einer Arbeitskopie anders als die in unserem Repository. Aber wie genau sehen wir diese Änderungen? Denn manchmal haben wir einige Änderungen an einer Datei vorgenommen und wir wollen die im Projektarchiv sehen und das passiert oft, wenn Sie mit Code arbeiten, weil Sie genau wissen wollen, welche Änderungen Sie machen und wie sich das auf das Hauptprojekt auswirkt.

Das erste, was wir also tun können, ist den git status zu überprüfen und Sie stellen fest, dass eine Datei geändert wurde, was bedeutet, dass sie sich von der im Hauptprojekt oder im Haupt-Repository unterscheidet. Wenn Sie git diff eintippen und Enter drücken, wird es Ihnen die Unterschiede zeigen.

$ 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

Der rote Text in der git bash zeigt an, was im Repository ist und der grüne zeigt an, wie der Text modifiziert wurde.

Wenn Sie mehr Dateien nach dem letzten Commit aktualisiert haben, wird Git die Dateiunterschiede nacheinander auflisten.

Git diff externe Werkzeuge

Wenn Sie sich nicht an das Standard diff Werkzeug von git gewöhnt haben, können Sie das difftool auf das von Ihnen bevorzugte Werkzeug konfigurieren.

Wir werden Ihnen zeigen, wie Sie kdiff3 als das diff, merge Werkzeug von Git konfigurieren.

Ändern Sie das .gitconfig Dateiverzeichnis

Unter Windows OS öffnen Sie die Datei .gitconfig im Verzeichnis C:\Benutzername\Benutzername und hängen den Text an die Datei an,

[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

Hier ist path der installierte Pfad von kdiff3, und er könnte auf deiner Seite anders sein.

difftool per git bash konfigurieren

Du kannst das difftool oder mergetool auch mit dem Befehl in der git bash konfigurieren.

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

Es hat im Grunde das gleiche getan, wie man den Inhalt der .gitconfig Datei modifiziert.

Unterschiede zwischen der Staging Area und dem Repository prüfen

Sie könnten den Befehl git difftool verwenden, um die Dateiunterschiede zwischen der in Ihrer Arbeitskopie und der im Repository zu überprüfen.

Git Difftool-kdiff3

git diff zeigt den Unterschied zwischen der Arbeitskopie und dem Repository an, und nachdem die Datei bereits dem Staging-Bereich hinzugefügt wurde, wird git diff keinen Unterschied dieser Datei anzeigen, weil es den Staging-Bereich nicht mit dem Repository vergleicht, weshalb es so aussieht, als wäre alles aktuell, obwohl diese Datei immer noch anders ist als die in Ihrem Repository.

Der richtige Befehl, um die Staging Are und das Repository zu vergleichen, ist die Option --staged hinter git diff hinzuzufügen.

$ 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
Autor: 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