我似乎有一个损坏的回购,我不知道如何解决...
$ 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
有关如何处理此问题的任何想法?我基本上想要获取遥控器中的任何内容并在此基础上推送我的一些提交。
答案 0 :(得分:45)
我遇到了同样的问题然后跑了:
git prune
git gc
提到:
错误:refs / remotes / origin / ticketName
的错误引用
所以我删除了引用并修复了问题:
rm .git/refs/remotes/origin/ticketName
答案 1 :(得分:8)
我认为repo被EGit或SourceTree(我并行使用)破坏了,并且与实际的哈希冲突无关。我按照评论的建议,通过将遥控器克隆为新的仓库并复制我的更改来解决它。
答案 2 :(得分:6)
我有一个类似的问题,并通过运行来解决它:
$ git prune
Output: fatal: unable to parse object: refs/heads/prod-283
并删除上面的参考:
$ rm -f .git/refs/heads/prod-283
最后我能够运行git pull
答案 3 :(得分:0)
我运行了以下命令:
git prune
git gc
并删除了.git \ refs \ remotes \ origin \ master文件(错误列出的文件:错误的引用)
然后运行
git gc --prune=now
解决了该问题。