2010-12-03 4 views
3
~$ git commit . 
error: inflate: data stream error (incorrect data check) 
error: corrupt loose object '26f0654cde5d83f2ed8d971474d9d08a76644087' 
fatal: object 26f0654cde5d83f2ed8d971474d9d08a76644087 is corrupted 

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

Я пробовал git unpack-object -r < objectname, и он ничего не делает. Поскольку на моем hdd объект не существует ANYWHERE.


оригинальный бит теперь изменилось:

Nom, я, казалось, только что нашел его. Я не понимал, что это буквально делает 26 как/26/вместо себя. По-видимому, файл был сделан 1 декабря, и, поскольку я не имел указанного объекта со времени последней внешней резервной копии, я считаю, что это было несколько дней назад.
Каков наилучший способ сделать это?

+0

Если у вас есть резервная копия, http://stackoverflow.com/questions/801577/how-to-recover-git-objects-damaged-by-hard-disk-failure может помочь – VonC 2010-12-03 12:48:12

+0

возможный дубликат [Git: " Коррумпированный свободный объект "] (http://stackoverflow.com/questions/4254389/git-corrupt-loose-object) – ripper234 2012-02-20 21:25:11

ответ

0

Вам нужно будет посмотреть, что это за объект. Вам нужно определить, является ли это blob, tree, commit или (вряд ли) подписанным или помеченным тегом. Для этого Git имеет команды манипуляции с низким уровнем.

Посмотрите на this post.

Я бы рекомендовал сделать ветвь фильтра или rebase -i -preserve-merges, чтобы очистить историю, чтобы все sha-1 разрешали соответствующие объекты.

1

Попробуйте

git stash 

Это работает для меня. Это задерживает все, что вы не совершили, и это обошло проблему.

Смежные вопросы