Есть ли любой способ, которым я могу восстановить свой репозиторий с историей фиксации в такте.
# git log
fatal: object 01aeb2bf2e93b238f0e0422816b3e55518321ae7 is corrupted
От чтения ссылки ниже похоже, что я буду иметь столкновение им и запущусь.
Есть ли у вас клоны этого репозитория в другом месте? Возможно, вы захотите прочитать это сообщение Линуса Торвальдса, чтобы восстановить поврежденный объект, предполагая, что поврежденный объект - это блоб (содержимое файла).
Я оказался в такой же ситуации, вероятно, из-за неправильного выключения виртуальной машины, на которой я работал. В .git / objects было примерно 10 объектов нулевой длины. Насколько я могу судить, файлы с исходным кодом были в порядке, только репозиторий был залит.
$ git status
fatal: object fbcf234634ee04f8406cfd250ce5ab8012f92b08 is corrupted
В соответствии с некоторыми предложениями, которые я видел в другом месте (включая сообщение Линуса, указанное выше), я попытался временно переместить поврежденные объекты, на которые git жаловался, из .git / objects в другое место. Переместив их все, я получил:
$ git status
fatal: bad object HEAD
Примерно через час поисков в Google и различных решений я сдался и начал новую рабочую копию, используя 'git clone' для извлечения из источника (который был примерно на 2 часа позже моя рабочая копия). Затем я использовал rsync -rC
(-C исключает файлы SCM), чтобы скопировать измененные файлы из испорченной рабочей копии в мою новую рабочую копию.