Восстановление репозитория Git только из объектов - PullRequest
4 голосов
/ 24 апреля 2011

У меня есть окно с Windows, которое забрало его для удаления большей части Git-репозитория (должно быть, был отключен Важный детектор работ;).Все, что я оставил (что я могу найти), это объекты.Я не уверен, насколько полная коллекция объектов тоже.Можно ли восстановить вещи только из предметов?Насколько я могу судить, дерево объектов не повреждено.Все пакеты и незакрепленные предметы на месте;У меня просто нет метаданных, чтобы убедить Git.

Ответы [ 3 ]

9 голосов
/ 24 апреля 2011

Первое, что я бы попробовал, это инициализировать новый репозиторий с git init. Затем я скопировал бы каталог объектов из мертвого репозитория в новый репозиторий. Затем я запускаю git fsck в новом хранилище.

Если вам повезет, вы увидите множество висящих объектов, а если повезет, то некоторые из висящих объектов станут объектами коммитов, которые будут кончиками потерянных ветвей.

Если вы выполните git show и / или git log на этих коммитах, вы сможете распознать некоторые ветви.

Чтобы «восстановить» их, вы можете просто использовать git branch для воссоздания именованных ветвей.

0 голосов
/ 24 апреля 2011

попробуйте использовать этот пост

Как восстановить объекты Git, поврежденные в результате сбоя жесткого диска?

этот ответ может иметь некоторую * nix связанную информацию. Дайте мне знать, если это поможет.

Я посмотрю, что он делает.

0 голосов
/ 24 апреля 2011

Если вы еще не пробовали git checkout master, я бы начал с этого.

...