Подтвердить что ты не робот

Git фатальный: SHA1 COLLISION FOUND

Кажется, у меня поврежденное репо, что я понятия не имею, как исправить...

$ git pull
remote: Counting objects: 141, done.
remote: Compressing objects: 100% (90/90), done.
error: unable to unpack ff7fca002656ad848c44bf134088d638a01d5217 header
error: inflateEnd: stream consistency error (no message)
fatal: SHA1 COLLISION FOUND WITH ff7fca002656ad848c44bf134088d638a01d5217 !
fatal: index-pack failed
Unable to write to standard output: The pipe is being closed.

И это вывод из fsck:

$ git fsck
error: unable to unpack 024e257c1a13532e7d5579b0ea4bb5915d21e4a6 header
error: inflateEnd: stream consistency error (no message)
fatal: loose object 024e257c1a13532e7d5579b0ea4bb5915d21e4a6 (stored in super/sectet/path/to/repo/.git/objects/02/4e257c1a13532e7d5579b0ea4bb5915d21e4a6) is corrupt

Любые идеи о том, как подойти к этому? Я в основном хочу получить все, что находится на пульте дистанционного управления, и подтолкнуть несколько моих коммитов к этому.

4b9b3361

Ответ 1

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

Ответ 2

Я столкнулся с той же проблемой и побежал:

git prune
git gc  

в котором говорилось:

error: плохой ref для refs/remotes/origin/ticketName

Итак, я удалил ссылку и исправил проблему:

rm .git/refs/remotes/origin/ticketName

Ответ 3

У меня есть аналогичная проблема, и я решил ее запустить:

$ git prune
Output: fatal: unable to parse object: refs/heads/prod-283

и просто удалите ссылку выше:

$ rm -f .git/refs/heads/prod-283

и, наконец, я могу запустить git pull