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/
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐