为什么git会在同一点暂停,而;“压缩对象”;,导致;“损坏的松散对象”;?

为什么git会在同一点暂停,而;“压缩对象”;,导致;“损坏的松散对象”;?,git,github,repository,Git,Github,Repository,如果我git pull在几个小时后,我通常会遇到一个停滞的pull过程,可能需要10分钟。在此之后,它通常运行得非常快(2-3秒),直到我让一个更大的差距过去。我注意到它总是围绕着相同的对象(在我的例子中是3650-3680),它有点像是阻塞了,3651。。。3652... 等等,而不是像它应该的那样撕碎它们。一旦达到3680ish,它就开始再次撕开它们,并在几秒钟后完成 你推荐什么?这是我最近一次拉的打印输出: Counting objects: 6512, done. Delta compr

如果我
git pull
在几个小时后,我通常会遇到一个停滞的pull过程,可能需要10分钟。在此之后,它通常运行得非常快(2-3秒),直到我让一个更大的差距过去。我注意到它总是围绕着相同的对象(在我的例子中是3650-3680),它有点像是阻塞了,3651。。。3652... 等等,而不是像它应该的那样撕碎它们。一旦达到3680ish,它就开始再次撕开它们,并在几秒钟后完成

你推荐什么?这是我最近一次拉的打印输出:

Counting objects: 6512, done.
Delta compression using up to 2 threads.
Compressing objects:  56% (3677/6463)
存储库中只有我们两个人,而且没有太多的代码更改可以保证如此苛刻的请求

当它最终完成时,它说:

error: corrupt loose object '895fdc42e0015abc74e4cc958393027262374b90'
fatal: loose object 895fdc42e0015abc74e4cc958393027262374b90 (stored in /path/to/mysite/.git/objects/89/5fdc42e0015abc74e4cc958393027262374b90) is corrupt
error: failed to run repack

在您的中央回购上运行
git fsck
,看看它说了些什么。它可能会将同一对象报告为已损坏。看看它是否真的被引用了。如果没有,请删除它。如果它被引用,请找出它的来源/谁可能拥有它的副本,并用正确的副本替换损坏的对象。

此文件不在主文件或存储库中的其他开发人员上。这是否意味着它没有被引用并且可能被删除?您只需将它移出git目录(记住它的位置!),然后看看会发生什么。我的回答有点不具体——要检查对象是否在其他repo中,不应该查看文件系统,而应该运行
git show-p**SHA**
。对象可能位于打包文件中。