Prüfen des git reflog
auf Löschungen
In diesem Schritt werden wir uns das git reflog
-Kommando ansehen, ein leistungsstarkes Werkzeug zum Wiederherstellen verlorener Commits oder Branches. Das reflog
(Referenzprotokoll) protokolliert Updates an den Endpunkten von Branches und anderen Referenzen im lokalen Repository. Das bedeutet, dass es fast jede Änderung protokolliert, die Sie in Ihrem Repository vornehmen, einschließlich Commits, Merges, Rebases und sogar Branch-Löschungen.
Stellen Sie zunächst sicher, dass Sie sich im Projektverzeichnis befinden:
cd ~/project/my-time-machine
Nun erstellen wir einen neuen Branch, den wir später löschen werden. So haben wir etwas, wonach wir im reflog
suchen können.
git branch feature/new-feature
Dieser Befehl erstellt einen neuen Branch namens feature/new-feature
, der auf den aktuellen Commit zeigt. Lassen Sie uns überprüfen, ob er existiert:
git branch
Sie sollten jetzt beide Branches sehen:
* master
feature/new-feature
Nun löschen wir den feature/new-feature
-Branch mit der -d
-Option, die für ein "sicheres" Löschen steht (es verhindert das Löschen, wenn der Branch ungemergte Änderungen hat).
git branch -d feature/new-feature
Sie sollten eine Ausgabe sehen, die die Löschung bestätigt:
Deleted branch feature/new-feature (was <commit-id>).
Ersetzen Sie <commit-id>
durch die tatsächliche Commit-ID, die in Ihrem Terminal angezeigt wird.
Nun prüfen wir das reflog
, um zu sehen, ob die Löschung protokolliert wurde.
git reflog
Die Ausgabe zeigt eine Historie der Aktionen. Sie sollten einen Eintrag in Bezug auf die Branch-Löschung sehen, ähnlich wie dieser (die genaue Ausgabe kann variieren):
<commit-id> HEAD@{0}: branch: deleted feature/new-feature
<commit-id> HEAD@{1}: branch: Created from <another-commit-id>
... (andere reflog-Einträge)
Der reflog
-Eintrag HEAD@{0}: branch: deleted feature/new-feature
zeigt an, dass der feature/new-feature
-Branch gelöscht wurde. HEAD@{0}
bezieht sich auf die neueste Aktion. Dies zeigt, dass auch wenn der Branch aus git branch
verschwunden ist, seine Löschung im reflog
protokolliert wird, was seine potenzielle Wiederherstellung ermöglicht.
Das Verständnis von git reflog
ist von entscheidender Bedeutung, da es wie ein Sicherheitsnetz fungiert. Wenn Sie versehentlich einen Branch löschen oder Commits aufgrund eines Rebases oder einer anderen Operation verlieren, kann das reflog
Ihnen helfen, die Commit-ID zu finden, die Sie benötigen, um Ihre Arbeit wiederherzustellen.