Git - поврежденный объект? - PullRequest
15 голосов
/ 21 апреля 2011

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

user@localhost$ git fsck
fatal: object 192e0282d23863ec80375a77011012ef8cb80f77 is corrupted

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

user@localhost$ git commit
error: unable to find 192e0282d23863ec80375a77011012ef8cb80f77
fatal: 192e0282d23863ec80375a77011012ef8cb80f77 is not a valid object

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

git reset HEAD 192e0282d23863ec80375a77011012ef8cb80f77
git gc

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

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

Ответы [ 2 ]

2 голосов
/ 21 апреля 2011

Если вы ищете предложения по восстановлению после этого, посмотрите эту ветку: Как восстановить поврежденный объект в репозитории git (для новичков)?

1 голос
/ 21 апреля 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...