【git/内源开发】fatal: Out of memory, malloc failed问题的解决

fatal: Out of memory, malloc failed (tried to allocate 3179053026 bytes)
fatal: index-pack failed
主要是由于32位和64位机的不同导致的,用下面的方法可以解决
参考地址:http://stackoverflow.com/questions/8855317/git-push-out-of-memory-malloc-failed

首先进入该项目的本地git目录,然后执行git config --global pack.XXX = X
如:git config --global pack.windowMemory 1024m

My advice is to try several git parameters related with pack:

[pack]
   threads = 1
   deltaChaseSize = 128m
   windowMemory = 50m

What it got better results for me was setting git config pack.threads 1 and git config pack.windowMemory 50m (default is 10m).

Still, my host didn't have enough RAM memory (2GB) and kept failing. I hard copied the repo and moved it to another machine with more RAM (8GB). It got better but still failed.

执行完上面的步骤之后,执行git repack重新打包

Finally, I downloaded the latest version of git (https://github.com/git/git), compile it and install it. That fixed the problem just by running git repack -adf with the same parameters. After that I run git gc --aggressive --prune=now

Once I got the repo fixed in my local machine I pushed it to master, overwriting the remote repo, git push -f origin master.

To prevent similar errors in the future try not to add unnecessary large files to the repo (in my case I got a SQL dump of 3.5GB :)) and disable delta compression for large files (such as images, PDFs, videos). Add the following lines to .gitattributes:

*.pdf -delta
*.jpg -delta
http://kymcuc.blog.163.com/blog/static/201942114201322094421628/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值