Testen mit verschiedenen Repository-Zuständen
In diesem Schritt werden wir einige Änderungen in unserem Repository vornehmen, um zu sehen, wie git status --porcelain
diese meldet. Dies wird Ihnen helfen, die verschiedenen Codes zu verstehen, die in der porcelain
-Ausgabe verwendet werden.
Zunächst stellen Sie sicher, dass Sie sich im richtigen Verzeichnis befinden:
cd ~/project/my-time-machine
Jetzt erstellen wir eine neue, nicht nachverfolgte Datei. Wir nennen sie notes.txt
:
echo "Some random notes" > notes.txt
Führen Sie erneut git status --porcelain
aus:
git status --porcelain
Sie sollten jetzt eine Ausgabe ähnlich der folgenden sehen:
?? notes.txt
Das ??
zeigt an, dass notes.txt
eine nicht nachverfolgte Datei ist. Git erkennt die Datei, verwaltet aber derzeit keine Versionen davon.
Als Nächstes ändern wir die message.txt
-Datei, die wir zuvor committet haben. Wir fügen ihr eine weitere Zeile hinzu:
echo "Hello again, Future Me" >> message.txt
Der >>
-Operator hängt den Text an die bestehende Datei an, anstatt sie zu überschreiben.
Jetzt führen Sie git status --porcelain
noch einmal aus:
git status --porcelain
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
M message.txt
?? notes.txt
Das M
zeigt an, dass message.txt
geändert wurde. Der Leerzeichen vor dem M
bedeutet, dass die Änderung sich im Arbeitsverzeichnis befindet, aber noch nicht in den Staging-Bereich übernommen wurde. Das ??
für notes.txt
bleibt, da es immer noch nicht nachverfolgt wird.
Schließlich nehmen wir die geänderte message.txt
-Datei mit git add
in den Staging-Bereich auf:
git add message.txt
Und führen Sie git status --porcelain
noch einmal aus:
git status --porcelain
Die Ausgabe sollte jetzt so aussehen:
M message.txt
?? notes.txt
Das M
befindet sich jetzt in der ersten Spalte, was bedeutet, dass message.txt
für den Commit in den Staging-Bereich übernommen wurde. Das Leerzeichen in der zweiten Spalte bedeutet, dass es seitdem keine weiteren Änderungen im Arbeitsverzeichnis gibt. notes.txt
ist immer noch nicht nachverfolgt.
Das Verständnis dieser Codes (??
für nicht nachverfolgte Dateien, M
in der zweiten Spalte für geänderte, aber nicht in den Staging-Bereich genommene Dateien, M
in der ersten Spalte für in den Staging-Bereich genommene Änderungen) ist der Schlüssel für die schnelle Interpretation der git status --porcelain
-Ausgabe.