fatal: Duplicated ref, and SHA1s don't match: refs/heads/BranchName
我应该注意,我使用的是 Ubuntu Lucid,这与一些文件系统注释相关。
我在本地 master 上执行 git pull origin master 后立即收到此错误。很平常的事情。 pull 本身似乎有效,我看到所有文件的列表都被 pull 下来。但之后就没有了。
我查看了 SO 上的一些其他答案,但它们都涉及运行 git 命令。此时我无法运行任何 git 命令,包括 fsck。我刚刚收到同样的消息。有人建议我删除 .git/refs/heads/BranchName 但它不起作用。虽然我看到了一件有趣的事情:/refs/heads 中唯一的东西是坏分支,带有 ?最后(可能是一些未知的字符)。那里没有列出其他分支机构。
我过去遇到过 git fsck 失败的问题,然后又奇迹般地又正常了。听起来很像高清故障,但 smartctl 的长期测试告诉我以前发生过这种情况并没有什么不好。我刚才尝试了快速状态检查,看起来还不错。
没什么大不了的,我可以重新克隆。我并没有失去太多。但如果能把它找回来就好了,并且也可以为遇到同样问题的其他人提供这个。
谢谢。
最佳答案
我设法重现了该问题:文件 .git/packed-refs
有两个 refs/heads/BranchName
条目,并且它们具有不同的 SHA,git doen'不知道哪一个是正确的,这会给你带来致命的错误。
删除其中一个来解决冲突,您的 BranchName
分支可能最终会指向不存在的提交,但您将能够再次运行 git 命令。
关于git - 我可以从这个 git 错误中恢复吗? "fatal: Duplicated ref, and SHA1s don' t 匹配 : refs/heads/BranchName",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10110625/