Git - поврежденный объект?

Мой дом просто пострадал от отключения питания, и теперь мой репозиторий git (который я совершал, когда он пришел) сообщал:

[email protected]$ git fsck
fatal: object 192e0282d23863ec80375a77011012ef8cb80f77 is corrupted

Я не могу зафиксировать из-за этой ошибки. Похоже, что вытягивание и выборка работают нормально.

[email protected]$ git commit
error: unable to find 192e0282d23863ec80375a77011012ef8cb80f77
fatal: 192e0282d23863ec80375a77011012ef8cb80f77 is not a valid object

Я попробовал перепродать его, но ничего не сделал

git reset HEAD 192e0282d23863ec80375a77011012ef8cb80f77
git gc

Как это исправить?

ОБНОВЛЕНИЕ:. Файлы были все еще прекрасны, поэтому я просто клонировал новый экземпляр репо и вручную переместил файлы. (Рад, что это был не единственный экземпляр репо!). Тем не менее, я сохранил разбитое репо, чтобы я мог исправить исправления, опубликованные здесь, в случае, если он будет в следующий раз.

Ответы

Ответ 2

На самом деле то, что вы сделали с новым клоном, вероятно, рекомендуется для его исправления. Нет смысла делать что-то сложное, если вам это не нужно. Эти howtos больше, если у вас нет правильной версии уже в рабочем дереве и нет другой чистой копии.

В любом случае, я думаю, вы хотели reset до вашего последнего фиксации перед отключением питания, переместите поврежденный объект из своего .git/объектов и повторите попытку. Похоже, что ваше дерево могло быть повреждено, поэтому хауты, направленные на восстановление капли, не помогли.