Git致命:pack在偏移X处有坏对象:inflate返回-5

And*_*ham 10 git zlib inflate

Git给了我一个可爱的圣诞礼物......我正在尝试git push一堆提交,比如6 GB.我收到以下错误消息:

-Counting objects: 525, done.
Delta compression using up to 24 threads.
Compressing objects: 100% (474/474), done.
fatal: pack has bad object at offset 3453162391: inflate returned -5
error: pack-objects died of signal 13
error: failed to push some refs to ....git
Run Code Online (Sandbox Code Playgroud)

这是什么意思,它是如何修复的?从谷歌我可以看出它与我试图推动的大小有关.

这是在写作时发生的.

ken*_*orb 5

根据您的偏移量,您似乎正在尝试推送一些非常大的对象(偏移量3453162391 =〜> = 3GB),因此zlib无法对对象进行膨胀/压缩,因为输出缓冲区中的空间不足(错误:Z_BUF_ERROR)。

这可能与暂时的内存不足或某些缓冲区限制有关。基本上,它尝试使用可用的输出处理尽可能多的输入,否则返回Z_BUF_ERROR。请参阅:zlib膨胀返回缓冲区错误

您应该重试以查看是否可以重现该问题。

如果问题是可重复的,请尝试:

  • 为避免将大文件推送到git存储库中,Git旨在跟踪源代码文件,而不是非常大的文件(例如6GB),

  • 增加客户端上的git消息大小http.postBuffer,例如

    git config http.postBuffer 134217728 # =~ 128MB
    
    Run Code Online (Sandbox Code Playgroud)
  • 使用一些可以忽略较大blob的替代客户端,例如bfg

    java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git
    
    Run Code Online (Sandbox Code Playgroud)
  • 删除引起问题的对象(git gc?)。

其他潜在问题可能包括:

有关更多信息,请查看以下文章:推到遥控器时“包装有坏物”


如果您想使用Git处理大型文件,请检查以下内容: