Git Reflog
Zuletzt aktualisiert
git reflog protokolliert jede Position, auf die HEAD gezeigt hat - jeden Commit, Checkout, Reset und Rebase. Da Git diese Commits noch eine Weile behält, selbst nachdem sie deine Branches verlassen haben, ist das Reflog dein Sicherheitsnetz: Es lässt dich Arbeit finden und wiederherstellen, die ein reset --hard, ein misslungenes Rebase oder ein gelöschter Branch scheinbar zerstört hat.
Probiere das im Terminal-Playground aus - eine echte Shell in deinem Browser, nichts zu installieren.
Syntax
| Command | What it does |
|---|---|
git reflog | Zeigt die letzten Positionen von HEAD mit Hashes an |
git reflog show <branch> | Zeigt das Reflog eines Branches an |
git reset --hard HEAD@{1} | Setzt HEAD auf eine frühere Position zurück |
git branch recovered <hash> | Erstellt einen Branch auf einem verlorenen Commit neu |
Nach einem Fehler wiederherstellen
Mache einen fehlerhaften Reset rückgängig, indem du den Commit vor dem Reset findest.
| Step | Command | Result |
|---|---|---|
| 1 | git reflog | Finde den Commit vor dem Reset |
| 2 | git reset --hard HEAD@{1} | Setze deinen Branch darauf zurück |
Git reflog FAQ
Was ist git reflog?
HEAD (und jede Branch-Spitze) in deinem lokalen Repository gezeigt hat - nach Commits, Checkouts, Resets, Merges und Rebases. Anders als git log, das der Commit-Abstammung folgt, ist das Reflog eine chronologische Aufzeichnung deiner Aktionen, und genau das macht es für die Wiederherstellung nützlich.Wie stelle ich einen Commit nach git reset --hard wieder her?
git reflog aus, um den Eintrag für den Commit zu finden, auf dem du vor dem Reset warst (etwa HEAD@{1}), und dann git reset --hard <that-hash> (oder HEAD@{1}), um dorthin zurückzukehren. Der Commit wurde nicht wirklich gelöscht - es zeigte nur kein Branch mehr auf ihn, und das Reflog kennt seinen Hash noch.Wie stelle ich einen gelöschten Branch wieder her?
git reflog und erstelle den Branch dort neu: git branch <name> <hash>. Solange die Löschung kürzlich war (innerhalb der Reflog-Ablaufzeit von Git, typischerweise Wochen), sind die Commits auf diesem Weg noch erreichbar.Funktioniert git reflog über Klone hinweg?
Kann ich das online üben?
git reflog in einer echten Shell in deinem Browser auszuführen - nichts zu installieren. Coddys kostenloser interaktiver Git-Kurs behandelt außerdem das Rückgängigmachen von Änderungen und die Wiederherstellung Schritt für Schritt.