Git verschwundenen commit wiederherstellen

Mar 29, 2013
2 minutes read

Git commit verschwunden

Aktuell kenne ich mich noch nicht weitgehend mit Git (oder Github) aus und deshalb ist mir etwas blödes passiert:

Als ich einen commit gemacht habe, um meine neuen Daten zu “speichern”, waren diese commited Daten auf einmal weg. Also es waren genau die Daten verschwunden, die ich commited habe. Natürlich war ich erstmal schockiert und habe wild in der Git GUI für Eclipse /das Zend Studio (Egit) herum geklickt, ohne meine verlorenen Daten wieder zu finden. Meine Daten waren einfach weg!

Nun habe ich natürlich umgehend im Internet gesucht und bin auf den Artikel von abhikp gestoßen, in welchem genau dieses Problem beschrieben wird.

Git commit wiederherstellen

Im Grunde kann man davon ausgehen, dass Git jeden commit speichert und ihr diesen auch immer in den Logs finden könnt.

Zuerst versuchen wir es mit

git reflog
und durchsuchen so die Updates innerhalb des branches. Das Ergebnis sollte so aussehen und uns die commits und changes anzeigen.
% git reflog
286641d HEAD@{0}: 283331dc5ef74ba119eb733aa962da2933b686a8: updating HEAD  
1bbdc8f HEAD@{1}: commit: Losing commit …
Ich habe unseren verlorenen commit als “Losing commit” benannt. Deshalb ist er relativ leicht zu identifizieren. Wenn ihr euch nicht sicher seit, welcher commit der richtige ist, dann kopiert euch den SHA1 Hash (z.B. 1bbdc8f) und benutzt folgenden Code, um euch mehr infromationen anzeigen zu lassen:
git show
Wenn ihr den richtigen Commit gefunden habt, dann benutzt den Code, um eure verlorenen Daten wiederherzustellen:
git cherry-pick
Danach sind die Dateien wieder im Branch sichtbar.

Viel Erfolg beim Coding!


Back to posts