Восстановить поврежденный репозиторий Git из файлов журнала?

Я ударил случайный синий экран на окнах, и когда я перезапустился, мой репозиторий git был поврежден. Это локальное репо, и моим резервным копиям несколько недель. Я пробовал несколько разных вещей (документированных ниже), чтобы заставить его работать, но безрезультатно. Повторное клонирование локального репо приводит к тому же повреждению, что и оригинал. Я не могу совершить ничего нового в репо.

Тем не мение, git log а также git show по-прежнему работает отлично. Есть ли какой-нибудь способ, которым я могу воссоздать новый репозиторий git из результатов этих команд?


Что я пытался заставить его работать снова:

git status не работает:

> git status --long -v
error: inflate: data stream error (incorrect header check)
fatal: failed to read object 143fd2fe59980f9b4aec9b1b696e4d2ab5bd0465: 
> git fsck --full
error: inflate: data stream error (incorrect header check)
error: unable to unpack 143fd2fe59980f9b4aec9b1b696e4d2ab5bd0465 header
error: inflate: data stream error (incorrect header check)
fatal: loose object 143fd2fe59980f9b4aec9b1b696e4d2ab5bd0465 (stored in .git/objects/14/3fd2fe59980f9b4aec9b1b696e4d2ab5bd0465) is
corrupt
> mv .git/objects/14/3fd2fe59980f9b4aec9b1b696e4d2ab5bd0465 .git/objects/14/3fd2fe59980f9b4aec9b1b696e4d2ab5bd0465.bak
> git fsck --full
Checking object directories: 100% (256/256), done.
Checking objects: 100% (56357/56357), done.
broken link from    tree 85532cceff0ea16036538bfb47adc1f1ecdb1009
              to    tree 143fd2fe59980f9b4aec9b1b696e4d2ab5bd0465
...
missing tree 143fd2fe59980f9b4aec9b1b696e4d2ab5bd0465
...

Я также попробовал следующее, которое не помогло:

> git checkout 444ea90502abc17eb2e55365e550a2e0dc95af61
error: inflate: data stream error (incorrect header check)
fatal: failed to read object 143fd2fe59980f9b4aec9b1b696e4d2ab5bd0465: Invalid argument
> git reset --hard
error: inflate: data stream error (incorrect header check)
fatal: failed to read object 143fd2fe59980f9b4aec9b1b696e4d2ab5bd0465: Invalid argument

0 ответов

Другие вопросы по тегам