Testen Sie geänderte vs. hinzugefügte Dateien
In den vorherigen Schritten haben wir gesehen, wie git show --name-status und git diff-tree --name-status ein A für eine hinzugefügte Datei anzeigen. Jetzt schauen wir uns an, wie sie sich verhalten, wenn eine Datei modifiziert wird.
Zunächst stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine befinden.
Fügen wir eine weitere Zeile zu unserer message.txt-Datei hinzu:
echo "Hello again, Future Me" >> message.txt
Der >>-Operator hängt den Text an die bestehende Datei an.
Jetzt überprüfen wir den Status unseres Repositorys:
git status
Sie sollten eine Ausgabe sehen, die darauf hinweist, dass message.txt modifiziert 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")
Git erkennt korrekt, dass die Datei modifiziert wurde.
Jetzt stellen wir diese Änderung in den Staging-Bereich:
git add message.txt
Und überprüfen den Status erneut:
git status
Die Ausgabe sollte nun anzeigen, dass die Änderung im Staging-Bereich ist:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: message.txt
Beachten Sie, dass Git diese Änderung als modifizierte Datei verfolgt, obwohl wir Inhalt hinzugefügt haben, da die Datei bereits im vorherigen Commit existierte.
Schließlich committen wir diese Änderung:
git commit -m "Add another message to the future"
Sie sollten eine Ausgabe sehen, die den Commit bestätigt:
[master a1b2c3d] Add another message to the future
1 file changed, 1 insertion(+)
Jetzt haben wir einen neuen Commit. Verwenden wir git show --name-status für den neuesten Commit (HEAD), um den Status anzuzeigen:
git show --name-status HEAD
Die Ausgabe wird ähnlich der folgenden sein:
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Jane Doe <jane.doe@example.com>
Date: Mon Aug 7 10:05:00 2023 +0000
Add another message to the future
M message.txt
Beachten Sie das M vor message.txt. Dies zeigt an, dass die Datei in diesem Commit modifiziert wurde.
In ähnlicher Weise werden Sie auch den M-Status sehen, wenn Sie git diff-tree -r --name-status HEAD verwenden.
Diese Unterscheidung zwischen A (Hinzugefügt) und M (Modifiziert) ist wichtig, um die Historie Ihrer Dateien in Git zu verstehen. A bedeutet, dass die Datei in diesem Commit erstellt wurde, während M bedeutet, dass die Datei bereits existierte und ihr Inhalt geändert wurde.