git - 我可以从这个 git 错误中恢复吗? "fatal: Duplicated ref, and SHA1s don' t 匹配 : refs/heads/BranchName"

标签 git fatal-error

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/

相关文章:

git - cherry-picked feature commits to new branch, reverted commits, rebase 不按预期工作

java - native 代码中的 JVM fatal error ,不知道该怎么办

zend-framework - Raspberry Pi 上的 Zend Framework 抛出 Zend_Config_Exception 'Section ' ' 无法在 (...) 中找到'

php - CakePHP 中的 MySQL 连接 -> 为什么我不断收到超过 30 秒的 fatal error ?

Git 产生 "BUG: There are unmerged index entries"

git - git pull 后本地分支位于 master 之前

git clone 和 pull 省略大文件

mysql - PHP fatal error 内存不足

git - 在 Gerrit 中,修改其他作者推送的提交

git - 我可以在本地使用 git 并同步到 Plastic SCM 服务器吗