Überprüfen von gestagten und nicht-gestagten Änderungen
In diesem Schritt werden wir den Unterschied zwischen gestagten (staged) und nicht-gestagten Änderungen weiter untersuchen, indem wir eine Datei ändern, die bereits von Git verfolgt wird.
Zunächst stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine
befinden:
cd ~/project/my-time-machine
Jetzt fügen wir unserer notes.txt
-Datei noch eine Zeile hinzu. Wir können den echo
-Befehl mit >>
verwenden, um Text an eine vorhandene Datei anzuhängen:
echo "Another idea" >> notes.txt
Dieser Befehl fügt die Zeile "Another idea" am Ende von notes.txt
hinzu.
Lassen Sie uns erneut den Status unseres Repositorys überprüfen:
git status
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: notes.txt
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: notes.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
message.txt
Beachten Sie, dass notes.txt
jetzt in zwei Abschnitten erscheint:
- Changes to be committed: Dies bezieht sich auf die Version von
notes.txt
, die wir im vorherigen Schritt in den Staging-Bereich aufgenommen haben (die nur "Ideas for the future" enthielt).
- Changes not staged for commit: Dies bezieht sich auf die Änderungen, die wir gerade an
notes.txt
vorgenommen haben (das Hinzufügen von "Another idea"). Diese Änderungen befinden sich in unserem Arbeitsverzeichnis, wurden aber noch nicht in den Staging-Bereich aufgenommen.
Dies ist ein Schlüsselkonzept in Git: Der Staging-Bereich enthält eine Momentaufnahme der Änderungen, die für den nächsten Commit bereit sind, während das Arbeitsverzeichnis den aktuellen Zustand Ihrer Dateien enthält, einschließlich Änderungen, die noch nicht gestaggt wurden.
Um den Unterschied zwischen dem Arbeitsverzeichnis und dem Staging-Bereich zu sehen, können Sie den git diff
-Befehl ohne zusätzliche Optionen verwenden:
git diff
Dies zeigt Ihnen die Änderungen, die nicht gestaggt sind. Sie sollten eine Ausgabe sehen, die die Hinzufügung der Zeile "Another idea" anzeigt.
Um den Unterschied zwischen dem Staging-Bereich und dem letzten Commit zu sehen (den wir im vorherigen Schritt gesehen haben), verwenden Sie git diff --cached
.
Das Verständnis des Unterschieds zwischen gestagten und nicht-gestagten Änderungen und wie man sie mit git status
und git diff
anzeigt, ist grundlegend für die effektive Nutzung von Git. Es gibt Ihnen präzise Kontrolle darüber, was in jeden Commit aufgenommen wird.