Testen von unveränderten Dateien
In den vorherigen Schritten haben wir gesehen, wie git status
und git diff
funktionieren, wenn eine Datei geändert wurde. Aber was passiert, wenn wir diese Befehle ausführen, wenn es keine Änderungen gibt?
Lassen Sie uns es herausfinden! Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine
befinden.
Zunächst führen Sie git status
aus:
git status
Da wir seit dem letzten Statuscheck keine Änderungen vorgenommen haben, sollten Sie die gleiche Ausgabe wie zuvor sehen, die darauf hinweist, dass message.txt
geändert, aber noch nicht in den Staging-Bereich aufgenommen wurde:
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: message.txt
no changes added to commit (use "git add" and/or "git commit -a")
Jetzt versuchen wir es erneut mit git diff
:
git diff
Sie sollten die gleiche Diff-Ausgabe wie zuvor sehen, die den Unterschied zwischen der aktuellen Datei und dem letzten Commit zeigt:
diff --git a/message.txt b/message.txt
index a1b2c3d..e4f5g6h 100644
--- a/message.txt
+++ b/message.txt
@@ -1 +1,2 @@
Hello, Future Me
+P.S. Hope you're doing well!
Dies bestätigt, dass git status
und git diff
Ihnen den aktuellen Zustand Ihres Arbeitsverzeichnisses im Vergleich zum letzten Commit anzeigen, unabhängig davon, wie oft Sie die Befehle ausführen, ohne weitere Änderungen vorzunehmen.
Jetzt nehmen wir die Änderungen, die wir an message.txt
vorgenommen haben, mit git add
in den Staging-Bereich auf:
git add message.txt
Führen Sie erneut git status
aus:
git status
Die Ausgabe wird sich ändern, um anzuzeigen, dass die Änderungen jetzt im Staging-Bereich sind:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: message.txt
Beachten Sie, dass git status
jetzt "Changes to be committed" (Änderungen, die committet werden sollen) anzeigt. Dies bedeutet, dass die Änderungen sich im Staging-Bereich befinden und für den nächsten Commit bereit sind.
Wie sieht es jetzt mit git diff
aus? Versuchen wir es:
git diff
Diesmal wird git diff
keine Ausgabe anzeigen. Warum? Weil git diff
ohne Argumente Ihr Arbeitsverzeichnis mit dem Staging-Bereich vergleicht. Da wir die Änderungen gerade in den Staging-Bereich aufgenommen haben, sind das Arbeitsverzeichnis und der Staging-Bereich identisch.
Um den Unterschied zwischen dem Staging-Bereich und dem letzten Commit zu sehen, würden Sie git diff --staged
verwenden. Versuchen wir das:
git diff --staged
Dies wird die Diff der Änderungen anzeigen, die sich derzeit im Staging-Bereich befinden, also die Zeile, die wir hinzugefügt haben:
diff --git a/message.txt b/message.txt
index a1b2c3d..e4f5g6h 100644
--- a/message.txt
+++ b/message.txt
@@ -1 +1,2 @@
Hello, Future Me
+P.S. Hope you're doing well!
Das Verständnis des Unterschieds zwischen git diff
(Arbeitsverzeichnis vs. Staging-Bereich) und git diff --staged
(Staging-Bereich vs. letzter Commit) ist ein Schlüsselkonzept in Git. Es hilft Ihnen, Ihre Änderungen zu verwalten, bevor Sie sie committen.
Drücken Sie q
, um die Diff-Ansicht zu verlassen, falls sie angezeigt wird.