Git fatal error: can't pull code to my server

Git fatal error: can't pull code to my server

我在 WebFaction Linux 服务器上有一个 Django webapp 运行。直到两天前,我还可以按预期使用 git:在本地更改文件,然后在服务器中提取代码。

但是,今天在尝试拉入我的服务器时发生了这种情况:

remote: Enumerating objects: 69, done.
remote: Counting objects: 100% (69/69), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 50 (delta 38), reused 41 (delta 29), pack-reused 0
Unpacking objects: 100% (50/50), 6.68 KiB | 684.00 KiB/s, done.
fatal: unresolved deltas left after unpacking
fatal: unpack-objects failed

Git status 结果:

On branch master
Your branch is up to date with 'origin/master'.

事件虽然我有更改已由 Git 注册(我可以在 GitHub 上看到我的更改,而且我也可以在我的 git 中正常使用自己的电脑)。

我已经看到 我能找到的关于 git 个致命错误的所有 个可能的答案,其中 none 个让我对正在发生的事情有了任何见解.

有什么想法吗?

此错误消息表示您的存储库或远程存储库以某种方式损坏。

当Git 执行提取时,它会与远程服务器协商它已经拥有的对象。然后,远程服务器发送一个包,其中包含针对包中的其他对象或针对您自己系统上应该具有的对象的增量(即更改集)。后一种情况,当包指的是它之外的对象时,称为 thin pack;通常包必须 完整 并且只包含相对于它们包含的其他对象的增量。

在这种情况下,您的 Git 版本试图将这些增量解析为整个对象,但有些无法解析。这可能意味着您的存储库缺少它应该拥有的对象,或者它可能意味着远程端正在发送损坏的数据,可能是因为它也缺少对象(或者它可能只是有一个错误)。

这里要做的是在您的存储库上尝试 git fsck,看看它是否谈论任何丢失的对象。如果它谈到丢失的对象,您可以尝试从服务器创建另一个克隆并将其复制过来。 Git 用户手册详细描述了如何做到这一点,所以应该比较容易做到。

如果您的存储库没有问题,您可以尝试联系 GitHub 支持并要求他们验证存储库。您从中获取的那个存储库的副本不太可能但有可能以某种方式损坏并且尚未检测到,他们可以修复存储库。

如果你想采用懒惰的方法,你可以重新克隆然后 运行 git fsck,如果它通过了,你就可以开始了。

我的本地仓库很浅,我在远程添加了一个新分支。
然后我在调用 git fetch origin.

时遇到了同样的错误

我通过指定深度解决了这个问题:git fetch --depth=10 origin
之后调用 git fetch origin 将不会显示任何错误。