Git Schnellstart – Git Diff – Dateien & Commits auf Änderungen prüfen

Git diff ist ein Utility-Tool in Kommandozeile (Bash) und ein vielseitig einsetzbarer Git-Befehl.

Wenn er ausgeführt wird, führt er eine sogenannte diff-Funktion auf Git-Daten aus. Diese Daten können:

  • Dateien
  • Branches
  • Commits
  • uvm. sein.

Wofür wird Git Diff benutzt?

Git Diff wird benutzt, um Änderungen zwischen Commits, Commits und dem Arbeitsbaum, uvm. anzuzeigen.

Die Funktion vergleicht die verschiedenen Versionen der Datenquellen. Das Versionskontrollsystem steht für das Arbeiten mit einer modifizierten Version von Dateien. Der diff-Befehl ist also ein nützliches Werkzeug für die Arbeit mit Git.

Wir können die Änderungen aber auch mit Hilfe des git log-Befehls mit der Option -p verfolgen. Der git log Befehl wird auch als git diff Befehl funktionieren.

Lass uns verschiedene Fälle betrachten, in denen wir den git diff-Befehl verwenden können.

Fall 1: Verfolge alle Änderungen, die nicht gestaged wurden.

Mit git diff können wir Änderungen verfolgen, die noch nicht gestaged worden sind, also noch nicht im Staging-Bereich vorhanden sind.

Angenommen, wir haben die Datei hallowelt.txt editiert. Jetzt wollen wir verfolgen, welche Änderungen noch nicht gestaged sind. Das können wir mit dem git diff Befehl machen.

git diff

Schaue dir folgendes Beispiel an:

diff --git a/hallowelt.txt b/hallowelt.txt
index e69de29..4af84c4 100644
--- a/hallowelt.txt
+++ b/hallowelt.txt
@@ -0,0 +1,3 @@
+Hi Welt
+Das ist ein Test
+Das auch
 No newline at end of file

Hier der Screenshot aus Git Bash:

Aus der obigen Ausgabe können wir sehen, dass die Änderungen, die an hallowelt.txt vorgenommen wurden, mit dem git diff Befehl angezeigt werden.

In unserer Textdatei habe ich drei kurze Zeilen eingefügt, um die Änderungen sichtbar zu machen:

  • Hi Welt
  • Das ist ein Test
  • Das auch

Die Ausgabe zeigt also die Änderungen mit ihrem Inhalt an. Jetzt können wir entscheiden, ob wir diese Datei (mit den gemachten Änderungen) in den Staging-Bereich überführen wollen oder eben nicht.

Fall 2: Verfolge die Änderungen, die gestaged aber nicht committed wurden:

Der git diff Befehl erlaubt es uns ebenfalls, die Änderungen zu verfolgen, die gestaged aber nicht committed sind. Wir können die Änderungen im Staging-Bereich nachverfolgen. Um die Änderungen des Staging-Bereichs zu überprüfen, benutze die Option --staged zusammen mit dem git diff Befehl.

Um die nicht verfolgte Datei zu überprüfen, führe den Befehl git status aus:

git status

Der obige Befehl zeigt die ungetrackte Datei aus dem Repository an. Nun werden wir sie zum gestaged Bereich hinzufügen. Um die Datei im gestageten Bereich hinzuzufügen, führe den Befehl git add aus:

git add <Dateiname>

Der obige Befehl fügt die Datei in den Staging-Bereich ein.

Output in Git Bash:

Nun wird die Datei zum gestageten Bereich hinzugefügt, aber sie ist noch nicht committed. So können wir die Änderungen auch im gestaged Bereich verfolgen. Um die gestagten Änderungen zu überprüfen, führe den Befehl git diff zusammen mit der Option --staged aus. Es wird verwendet als:

git diff --staged

Der obige Befehl zeigt die Änderungen von bereits gestagten Dateien an.

Unser Output:

diff --git a/hallowelt.txt b/hallowelt.txt
index e69de29..4af84c4 100644
--- a/hallowelt.txt
+++ b/hallowelt.txt
@@ -0,0 +1,3 @@
+Hi Welt
+Das ist ein Test
+Das auch
 No newline at end of file

Hier der Screenshot aus Git Bash:

Der Output zeigt die Änderungen von hallowelt.txt, die jetzt gestaged ist.

Fall 3: Verfolge die Änderungen nach einem Commit:

Git lässt uns auch die Änderungen nach dem comitten einer Datei verfolgen. Angenommen, wir haben eine Datei für das Repository committet und nach dem Commit einige zusätzliche Änderungen vorgenommen. Dadurch können wir die Datei auch in diesem Stadium verfolgen.

In der untenstehenden Ausgabe haben wir die Änderungen, die wir an unserer hallowelt.txt gemacht haben, committed.

Schau dir folgenden Output an:

[master e46b3c6] Updates an hallowelt.txt gemacht
 1 file changed, 3 insertions(+)

Jetzt ändern wir die hallowelt.txt erneut. (Ich füge einfach eine weitere Zeile mit etwas Text ein)

Um die Änderungen dieser Datei zu verfolgen, führe nun den git diff Befehl zusammen mit dem HEAD Argument aus. Es wird wie folgt ausgeführt:

git diff HEAD

Der obige Befehl zeigt die Änderungen im Terminal an.

Schaue dir folgenden Output an:

diff --git a/hallowelt.txt b/hallowelt.txt
index 4af84c4..2061c21 100644
--- a/hallowelt.txt
+++ b/hallowelt.txt
@@ -1,3 +1,4 @@
 Hi Welt
 Das ist ein Test
-Das auch
 No newline at end of file
+Das auch
+Ein neuer Text. Super!
 No newline at end of file

Hier als Screenshot in Git Bash:

Der obige Befehl zeigt die Aktualisierungen der Datei newfile1.txt in der markierten Sektion an.

Zusammenfassung zu Git Diff

Es gibt noch weitere Fälle, die du mit git diff abdecken kannst. Wenn dich alle Optionen (Argumente) des Befehls interessieren, kannst du im spezifischen Fall auf die Git Dokumentation zurückgreifen.

In dieser Lektion hast du jedoch schon die wichtigsten Fälle gelernt, die dir in der Praxis helfen werden, Änderungen an verschiedenen Dateien zu verfolgen.