Mein Git-Repository ist irgendwie wackelig geworden - ich habe heute Morgen msysgit geladen und anstatt den Filialnamen nach dem aktuellen Verzeichnis anzuzeigen, heißt es "((ref: re ...))", 'git status' meldet alles als Neue Datei, 'Git Log' und 'Git Reflog' sagen mir "fatal: schlechte Standardrevision 'HEAD'" und so weiter.
Wenn ich 'git reflog --all' oder 'gitk --all' mache, sehe ich, dass der Rest des Repositorys intakt ist, aber es sieht so aus, als wäre der Zweig, an dem ich gearbeitet habe, gerade verschwunden, was erklärt, warum HEAD nicht zu existieren scheint / auf irgendetwas zeigen.
Ich weiß, dass git alle Arten von Informationen enthält, und ich gehe davon aus, dass meine Commits gerade irgendwie verwaist sind. Gibt es also einen Befehl, der mir diese Commits anzeigt, damit ich HEAD auf sie zurücksetzen kann?
EDIT: Oh je. Ich habe 'git fsck' entdeckt und 'git fsck --full' meldet "fatal: Objekt 03ca4 ... ist beschädigt". Was zum Teufel kann ich dagegen tun?
EDIT: Oh je, oh je. Ich habe einen anderen Zweig ausgecheckt und dann versucht, den ursprünglichen Zweig mit demselben Namen mithilfe von 'git checkout -b lostbranchname' neu zu erstellen. Git sagt "Fehler: Referenzreferenzen / Köpfe / verlorener Zweigname können nicht aufgelöst werden: Kein Fehler, schwerwiegend: Fehlgeschlagen Ref für Update sperren: Kein Fehler ". 'Kein Fehler' muss ein besonders böser Fehler sein. Es sieht also so aus, als ob es immer noch herumhängt, aber nicht benutzt und nicht getötet werden kann.
EDIT: Super Duper oh je. Ich habe einige Dinge entpackt, neu gepackt und ersetzt, wie hier vorgeschlagen: Wie kann ich Git-Objekte wiederherstellen, die durch einen Festplattenausfall beschädigt wurden? , aber jetzt bekomme ich einen weiteren Hash, der als korrupt gemeldet wird, für etwas so Unschädliches wie "Git-Status". Ich denke, das Ganze ist abgespritzt. Git ist reizend und alles, aber ich sollte mich nicht mit so etwas befassen müssen.
git checkout -b lostbranchname- wenn Sie nur über den Namen der Branche (nicht der Inhalt davon) kümmern, können Sie manuell löschen (oder umbenennen).git/refs/heads/lostbranchname-, die den Trick hoffentlich tun wird.