git repository failed to traverse parent 错误

标签 git

我是 git 的新手,直到今天晚上我都很开心。我一直在定期进行更改。我在 unfuddle 和 beantalk 上维护了两个 Remote ,还有一个本地文件系统 Remote 。

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

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

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

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

当我运行 git fsck 时,我得到 155 行缺少这个和悬空那个。 显然,我想把它清理干净。我可以在 5 月 29 日之前没有历史记录,如果我能从那时起直接了解的话。

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

此外,什么可能导致这种情况?在那段时间里,我唯一能想到的变化是我将 netbeans 升级到 v7,它应该有 git 支持,但似乎不识别现有的存储库。

最佳答案

我用谷歌搜索了这个错误并找到了你的页面,在我的例子中问题是我已经做了:

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

但几个月后,当我试图将它推送到另一个远程时,它却提示说,我忘记了我只抓取了最新的提交。我花了一点时间才弄清楚这不是损坏的 repo 协议(protocol),而是我从未让 parent 提交的事实!希望这对某人有所帮助。

这解决了我的问题:

git fetch --unshallow

关于git repository failed to traverse parent 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6713126/

相关文章:

git - 如何删除旧的 git 历史记录?

git - 切换到远程分支获取分离头

git - 什么是git-remote-http prcess,为什么有那么多git进程?

windows - 从 Windows 上的 Git 开始,接收 sh.exe": config: command not found

具有非标准端口的 GitLab 远程存储库

git - 连接中出现未知的 SSL 协议(protocol)错误

git - 从 GitHub fork 到 Bitbucket

javascript - 删除 git status 中出现的未跟踪文件

git - 在我较新的本地提交之上重新设置 GitHub pull 请求

eclipse - 无法在 EGit 中找到存储/应用功能