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
这是什么意思,它是如何修复的?从谷歌我可以看出它与我想要推动的大小有关。
这是在写作时发生的。
答案 0 :(得分:4)
根据您的偏移,看起来您正在尝试推送一些非常大的对象(偏移3453162391 =〜> = 3GB),因此 zlib 在充气/压缩对象时失败,因为那里输出缓冲区空间不足(错误:Z_BUF_ERROR
)。
这可能与暂时缺少内存或某些缓冲区限制有关。基本上它尝试使用可用输出处理尽可能多的输入,否则返回Z_BUF_ERROR
。请参阅:zlib inflate returning a buffer error。
您应该重新尝试查看问题是否可以重现。
如果问题可重复,请尝试:
避免将大文件推入git仓库,Git旨在跟踪源代码文件,而不是非常大的文件(如6GB),
在您的客户http.postBuffer
上增加git邮件大小,例如
git config http.postBuffer 134217728 # =~ 128MB
使用一些可以忽略更大blob的替代客户端,例如bfg
,例如
java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git
删除导致问题的对象(git gc
?)。
其他潜在问题可能包括:
Z_BUF_ERROR
,如需进一步阅读,请查看以下帖子:“pack has bad object” when pushing to remote。
如果您想使用Git处理大文件,请检查以下内容: