Auschecken eines bestimmten Commits mit Git Checkout
Eine weitere Funktionalität, die von git checkout
beibehalten wird, ist die Möglichkeit, einen bestimmten Commit auszuchecken. Dies versetzt Sie in einen "detached HEAD"-Zustand (abgelöster HEAD-Zustand), der es Ihnen ermöglicht, das Projekt zu diesem Zeitpunkt in der Historie zu inspizieren. git switch
verfügt nicht über diese Fähigkeit.
Finden wir zunächst den Commit-Hash des ersten Commits.
Stellen Sie sicher, dass Sie sich im Projektverzeichnis befinden:
cd ~/project
Zeigen Sie den Commit-Verlauf an:
git log --oneline
Sie sehen eine ähnliche Ausgabe wie diese, mit den Commit-Hashes:
<commit_hash_development> (HEAD -> development) Initial commit
<commit_hash_main> (main, feature-branch) Initial commit
Beachten Sie, dass die Commit-Hashes in Ihrer Umgebung unterschiedlich sein werden. Kopieren Sie den Commit-Hash für den "Initial commit".
Verwenden Sie nun git checkout
, gefolgt vom Commit-Hash, um diesen bestimmten Commit auszuchecken. Ersetzen Sie <commit_hash>
durch den tatsächlichen Hash, den Sie kopiert haben.
git checkout <commit_hash>
Sie sehen eine Ausgabe, die anzeigt, dass Sie sich in einem detached HEAD-Zustand befinden:
Note: switching to '<commit_hash>'
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
HEAD is now at <commit_hash> Initial commit
Sie betrachten das Projekt nun so, wie es zum Zeitpunkt des ersten Commits war. Um zu einem Branch zurückzukehren, können Sie git switch
oder git checkout
verwenden, um zu einem Branch wie development
oder main
zurückzukehren.
Wechseln wir mit git switch
zurück zum development
-Branch:
git switch development
Sie sehen eine Ausgabe, die den Wechsel bestätigt:
Switched to branch 'development'
Sie haben git checkout
erfolgreich verwendet, um einen bestimmten Commit zu erkunden, und sind dann mit git switch
zu einem Branch zurückgekehrt.