git 存储库无法遍历父错误

问题描述 投票:0回答:3

我是 git 的新手,直到今天晚上我都很高兴。我一直在定期进行更改。我在 unfuddle 和 beanstalk 上维护两个遥控器以及一个本地文件系统遥控器。

从未出现过错误,经过一天的工作,我将更改推送到所有遥控器,相信这会让我非常安全。没有错误,也没有问题。

今天晚上,我去查看我的项目日志,并得到了这个错误:

error: Could not read a2b6c2fa16e01db9e38d9509606a444e5831330a
fatal: Failed to traverse parents of commit 
       78e81a9a7f5cafa5e2af4b95d156364b9a430ac9

据我所知,历史可以追溯到 5 月 29 日。我无法从任何遥控器克隆副本。没有任何其他克隆可以用来恢复存储库。我什至不知道它什么时候坏掉的。我检查了常见问题解答,但我不知道存储库恢复部分的作者在说什么。

当我运行 git fsck 时,我得到 155 行 Missing this 和 dangling that 的信息。 显然,我想把这个清理干净。如果我能从那时起直接了解的话,我可以在 5 月 29 日之前没有任何历史记录。

谁能帮我弄清楚这个问题吗?

另外,什么可能导致这种情况?我能想到的唯一发生在那个时期的变化是我将 netbeans 升级到了 v7,它应该有 git 支持,但似乎无法识别现有的存储库。

git
3个回答
19
投票

我用谷歌搜索了这个错误并找到了你的页面,就我而言,问题是我已经完成了:

git clone --depth 1 https://github.com/example/nifty.git

但是几个月后,忘记了我只获取了最新的提交,当我尝试将其推送到另一个遥控器时,它抱怨了。我花了一些时间才发现这不是一个损坏的存储库,而是我从未有过父级提交的事实!希望这对某人有帮助。

这解决了我的问题:

git fetch --unshallow

2
投票

“悬空”物体可能不是问题。这可能只是意味着您已经完成了一些重置、变基和/或删除了未完全合并的分支。另一方面,我认为“失踪”更为严重。请参阅这篇关于“修复损坏的存储库”的文章。这可能会帮助你。如果你的版本已经过时了,你也可以尝试升级 git。新版本可能会更聪明一点。


0
投票

git branch -D --remote $REMOTE/$BRANCH

您可能可以使用 
git show-ref

来查找有问题的分支,但就我而言,我已经提前知道了。

    

© www.soinside.com 2019 - 2024. All rights reserved.