git服务器错误:损坏远程

时间:2015-11-17 13:04:48

标签: git server git-pull git-clone git-fsck

我有一个错误回应 git fsck --full 这是corrupt loose object '...' 在git服务器机器上。 我没有本地存储库。我无法克隆。我在repo / objects /...

中没有对象

您对如何解决此问题有任何想法吗? 该对象不在repo.git / objects目录中。 我可以在服务器机器内部进行ssh。

任何建议都非常感谢。 感谢

修改

我试过

git gc --prune

但我收到同样的错误

error: inflate: data stream error (invalid distance code) error: corrupt loose object '4e4c................' fatal: object 4e4c............. is corrupted error: failed to run repack

编辑2

git gc --aggressive --prune=now

给了我同样的错误 还有

git gc --aggressive --prune=all

使用

git ls-tree 4e4cc....

我有同样的错误

编辑3

我找到了一个带有最后一次提交的本地仓库(10GB),我可以推送到远程(20GB)。我也可以从那个地方拉。为什么它们的大小不同?我仍然无法克隆...而且obj 4e4c .............不在.git / objects /

里面

2 个答案:

答案 0 :(得分:0)

我认为这是一个腐败的对象。虽然速度很慢,但您可以尝试以下代码:

git gc --aggressive --prune=now

还有Linus Torvalds撰写的关于类似错误和重建blob的文档:click here.

答案 1 :(得分:0)

我已经解决了这个问题。 Git存储一个像4e4cfe这样的对象......创建一个目录4e(ex.repo / objects / 4e /)并将对象4cf3 ...放在该目录中。我正在寻找对象4e4cfe ......当然,我无法找到它。然而,该对象已损坏,但我在本地存储库中找到了一个好的(在git fsck --full -v之后),我只是将它复制到远程存储库中。因此,最后要解决问题,您需要一个简单的复制和粘贴"。