9 Stimmen

Git-Repository nur aus Objekten wiederherstellen

Ich habe eine Windows-Box, die es sich in den Kopf gesetzt hat, den größten Teil eines Git-Repositorys zu löschen (muss den Important Work Detector ausgelöst haben ;). Alles, was ich noch habe (was ich finden kann), sind die Objekte. Ich bin mir auch nicht sicher, wie vollständig die Sammlung der Objekte ist. Ist es möglich, Dinge nur aus den Objekten wiederherzustellen? Soweit ich das beurteilen kann, ist der Objektbaum intakt. Alle Packs und losen Objekte sind vorhanden; ich habe nur nicht die Metadaten, um Git zu überzeugen.

16voto

CB Bailey Punkte 693084

Als erstes würde ich versuchen, ein neues Repository zu initialisieren mit git init . Dann würde ich das Objektverzeichnis aus dem toten Repository in das neue Repository kopieren. Dann würde ich Folgendes ausführen git fsck im neuen Repository.

Mit etwas Glück sehen Sie eine ganze Menge baumelnder Objekte, und mit etwas mehr Glück sind einige der baumelnden Objekte gebundene Objekte, die die Spitzen verlorener Äste sind.

Wenn Sie git show und/oder git log auf diese Übertragungen können Sie vielleicht einige der Zweige erkennen.

Um sie "wiederherzustellen", können Sie einfach Folgendes verwenden git branch um benannte Zweige neu zu erstellen.

0voto

Ben Hocking Punkte 7440

Falls Sie es noch nicht ausprobiert haben git checkout master würde ich damit anfangen.

0voto

The Lazy Coder Punkte 11192

Versuchen Sie es mit diesem Beitrag

Wie kann man Git-Objekte wiederherstellen, die durch einen Festplattenfehler beschädigt wurden?

diese Antwort könnte einige *nix-bezogene Informationen enthalten. Lassen Sie es mich wissen, wenn es hilft.

Ich werde sehen, was es bewirkt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X