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.
Antworten
Zu viele Anzeigen?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.
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.