git服务器错误:远程上的松散对象已损坏



我在响应git fsck --fullcorrupt 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

我在最后一次提交时发现了一个本地repo(10GB),我可以推送到远程(20GB)。我也可以从那个地方拉。为什么它们的大小不同?我仍然无法克隆。。。和物镜4e4c。。。。。。。。。。。。。不在.git/objects/内部

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

git gc --aggressive --prune=now

还有一份由Linus Torvalds撰写的关于类似错误和重构Blob的文档:点击此处。

我已经解决了这个问题。Git存储一个类似4e4Fe的对象。。。创建一个目录4e(例如repo/objects/4e/)并将对象4cf3…放入该目录中。我在寻找物体4e4life。。。当然,我找不到它。然而,这个对象已经损坏,但我在本地存储库中找到了一个好的(在git fsck--full-v之后),我只是把它复制到了远程存储库中。所以最后要解决这个问题,你需要一个简单的"复制粘贴"。

最新更新