我知道在StackOverflow上已经有很多问题,但是我没有设法解决我的问题。
我的同事指派我参加一个新项目。该应用程序托管在安装了git的测试Debian服务器上。
首先我创建了我的分支:
git checkout -b mybranch
然后我对一些文件做了一些小修改。
当我尝试将其推送到Github时(使用我的github帐户)
git add myfile.php
git commit -m "my first commit"
git push origin mybranch
我收到此错误:
致命:内存不足,malloc失败
我不明白这是什么意思。我试图推送的文件总大小为156Ko。此外,该项目的总规模仅为10,9Mo。
我尝试重新启动服务器,但同样的情况发生了。
当我在服务器上运行free
时,我得到了:
total used free shared buffers cached
Mem: 505312 239532 265780 0 51576 71580
-/+ buffers/cache: 116376 388936
Swap: 0 0 0
我的同事之前从未遇到过这个问题,即使是在同一个测试服务器上也是如此。
有人可以向我强调这个错误的原因和可能的解决方法吗? 提前谢谢。
答案 0 :(得分:1)
从错误消息中,我不清楚错误是在本地还是在远程。
由于它适用于您的同事,问题可能在您的计算机上。也许Git回购已损坏。请尝试使用git fsck
您还可以第二次将远程仓库克隆为/tmp/test1
,然后尝试git push /tmp/test1
。如果这样做,问题是远程的。如果失败,您的PC上就会出现问题。
在您的PC上,检查您是否有足够的内存空间以及单个进程可以请求的内存量。在Linux上,请使用ulimit -a
。
[编辑] 此外,free
的输出表明您只有256MB的可用内存(您可以使用free -h
验证更可读的数字)。这对于今天运行大多数程序来说勉强够用。 Git需要大量的内存才能发挥其魔力,所以是的,实际上你可能没有太少的内存。
答案 1 :(得分:0)
此问题的另一种可能性,尤其是在您配置新服务器时,请确保您拥有交换文件。这是我使用新的CentOS 6.7的情况。你可以尝试:
swapon -s
如果没有文件那么,如果你像我一样,这可能是解决方案(创建一个)。对于CentOs,您可以关注https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-swap-adding.html。如果你有另一个发行版,只需google。
答案 2 :(得分:0)
这可能是存储库中的一些大文件的原因。也许Zip文件,特别是如果你有一个备份你的代码/数据库的插件。
要检查这些大文件,请进入存储库的根文件夹并运行:
find . -size +10M -ls
这将显示较大的文件。
此时你可以:
或者如果重要的话
*.zip binary -delta
这将确保您将zip文件视为二进制文件 - 而不是跟踪其中所做的更改。
如果这不起作用,您可以在此处访问此答案并试用它们:
祝你好运!