Testen mit einem neuen Orphan-Branch
In diesem Schritt werden wir einen neuen "Orphan-Branch" (Verwaist-Zweig) erstellen. Ein Orphan-Branch ist ein Branch, der ohne Historie aus vorherigen Branches beginnt. Es ist wie das Starten einer völlig neuen Zeitlinie in Ihrer Zeitmaschine. Dies ist nützlich für Dinge wie Dokumentations-Branches oder gh-pages-Branches für Websites, bei denen Sie nicht möchten, dass die Historie Ihres Hauptcodes enthalten ist.
Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine
befinden.
cd ~/project/my-time-machine
Nun erstellen wir einen neuen Orphan-Branch namens new-start
:
git checkout --orphan new-start
Sie sollten eine Ausgabe ähnlich dieser sehen:
Switched to a new branch 'new-start'
Wir haben uns jetzt auf den new-start
-Branch gewechselt. Beachten Sie, dass die Dateien aus dem master
-Branch immer noch in Ihrem Arbeitsverzeichnis vorhanden sind. Dies liegt daran, dass git checkout --orphan
Ihr Arbeitsverzeichnis und den Index für einen neuen Root-Commit (Stamm-Commit) vorbereitet, aber die vorhandenen Dateien nicht entfernt.
Lassen Sie uns den Status prüfen:
git status
Sie sollten etwas wie Folgendes sehen:
On branch new-start
Untracked files:
(use "git add <file>..." to include in what will be committed)
message.txt
nothing added to commit but untracked files present (use "git add" to track)
Git sieht message.txt
als eine nicht-verfolgte Datei an, da die Historie des new-start
-Branches vollständig getrennt von master
ist.
Um auf diesem Orphan-Branch wirklich neu anzufangen, entfernen wir normalerweise die alten Dateien und fügen dann den neuen Inhalt für diesen Branch hinzu. Lassen Sie uns die Datei message.txt
entfernen:
rm message.txt
Nun prüfen wir erneut den Status:
git status
Sie sollten Folgendes sehen:
On branch new-start
No commits yet
nothing to commit (create/copy files and use "git add" to track)
Das Arbeitsverzeichnis ist jetzt sauber, und wir sind bereit, den ersten Commit auf unserer neuen, unabhängigen Zeitlinie zu erstellen.
Lassen Sie uns eine neue Datei erstellen, die speziell für diesen Branch ist:
echo "This is a fresh start!" > readme.md
Fügen Sie die neue Datei in die Staging-Area (Zwischenspeicher) ein:
git add readme.md
Und schließlich erstellen wir den ersten Commit auf dem new-start
-Branch:
git commit -m "Initial commit for new-start branch"
Sie sollten eine Ausgabe ähnlich dieser sehen:
[new-start (root-commit) a1b2c3d] Initial commit for new-start branch
1 file changed, 1 insertion(+)
create mode 100644 readme.md
Beachten Sie, dass dieser Commit auch ein "(root-commit)" ist, genau wie der erste Commit auf dem master
-Branch. Dies bestätigt, dass er keinen Eltern-Commit hat und der Beginn einer neuen Historie ist.
Nun schauen wir uns das Log für diesen Branch an:
git log --pretty=oneline
Sie sollten nur den einzigen Commit sehen, den wir gerade gemacht haben:
a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> new-start) Initial commit for new-start branch
Dies zeigt, dass der new-start
-Branch seine eigene unabhängige Historie hat, getrennt vom master
-Branch.