Testen von modifizierten vs. hinzugefügten 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 <[email protected]>
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.