我是git的新手,直到今晚才开心。我一直在做出改变。我在unfuddle和beanstalk以及一个本地文件系统远程维护着两个遥控器。
从来没有出现过错误,经过几天的工作后,我将我的更改推到了所有的遥控器上,相信这些让我非常安全。没有错误也没有问题。
今天晚上,我去查看我项目的日志,并为我的痛苦得到了这个错误:
error: Could not read a2b6c2fa16e01db9e38d9509606a444e5831330a
fatal: Failed to traverse parents of commit
78e81a9a7f5cafa5e2af4b95d156364b9a430ac9
据我所知,历史可以追溯到5月29日。我无法从任何遥控器克隆副本。我无法在任何地方使用其他克隆来恢复存储库。我甚至不知道什么时候它破了。我检查了常见问题,但我不知道存储库恢复部分的作者正在谈论什么。
当我运行git fsck时,我得到了155行,并且悬空了。 很明显,我想清理一下。我可以在5月29日之前没有历史。如果我能从那时起直接得到它。
任何人都可以帮我解决这个问题吗?
还有什么可能导致这种情况?在那个时期,我唯一能想到的就是我将netbeans升级到v7,它应该有git支持但似乎不能识别现有的存储库。
答案 0 :(得分:9)
我用Google搜索了这个错误并找到了您的页面,在我的情况下问题就是我已经完成了:
git clone --depth 1 https://github.com/example/nifty.git
但是几个月之后,忘记了我只抓住了最新的提交,当我试图把它推到另一个遥控器时它抱怨了。我花了一点时间才弄清楚它不是一个损坏的回购,而是我从未让父母提交的事实!希望这有助于某人。
这解决了我的情况:
git fetch --unshallow
答案 1 :(得分:1)
“悬空”物体可能不是问题。这可能只是意味着您已经完成了一些未完全合并的重置,重新定位和/或删除的分支。另一方面,“失踪”更严重,我相信。在repairing a damaged repo上查看这篇文章。这可能会帮助你。如果你已经过时,你也可以尝试升级git。较新的版本可能会更聪明一些。