将项目推送到tfs GIT时出现此错误。
致命:内存不足,malloc失败(试图分配889192448 字节)
答案 0 :(得分:5)
我通过减小postbuffer
的大小来解决此问题:
[http]
postbuffer = 5m
答案 1 :(得分:3)
在Unix上编辑.git/config
或在Windows上编辑.gitconfig
并修改以下参数。通过运行git config --list --show-origin
,您可以找到您的gitconfigs。
[core]
packedGitLimit = 128m
packedGitWindowSize = 128m
[pack]
deltaCacheSize = 128m
packSizeLimit = 128m
windowMemory = 128m
[http]
postbuffer = 5m
如果您通过CLI使用git,请确保在更改此设置后重新启动shell /终端。
答案 2 :(得分:2)
我通过向我的服务器添加512MB的内存来解决这个问题,因此我将其扩展到2GB
答案 3 :(得分:1)
我在Windows上遇到了同样的问题,用checkout另一个分支执行。最后,由于内存不足错误("尝试分配......"等),我无法拉取或取出项目。我通过增加git pack和核心限制来做到这一点,但它对我没有用。最后,我从计算机中删除了git并再次安装。问题解决了。
答案 4 :(得分:1)
根据我的经验,发生这种情况的原因有几个:
.gitignore
文件,然后将文件复制到那里。这不是一个好的解决方案,但这是我最好的解决方案,直到我找到一种将其从所有历史记录中完全删除的方法为止。我并不是说这些是唯一的可能性。但是以我的经验,至少有数百个存储库,每次都是这两个问题之一。通常是#1。
要查看存储库中最大的文件,请执行以下命令:ls -lS
答案 5 :(得分:0)
我通过关闭使用大量内存(visual studio,sql server)并再次推送的应用程序来修复此问题
答案 6 :(得分:0)
因此,它基本上需要的是889192448字节(约889MB)的可用内存。 发生此错误的原因有两个
要检查基于Linux的系统上的可用内存。
<table>
<thead>
<tr>
<th>NO</th>
<th>Date</th>
<th>Check In</th>
<th>Check Out</th>
<th>Time Long</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>2019-03-01</td>
<td>X</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>2</td>
<td>2019-03-02</td>
<td>11:56</td>
<td>17:25</td>
<td>5:25</td>
</tr>
<tr>
<td>3</td>
<td>2019-03-03</td>
<td>X</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>4</td>
<td>2019-03-04</td>
<td>08:00</td>
<td>16:00</td>
<td>8:00</td>
</tr>
<tr>
<td>5</td>
<td>2019-03-05</td>
<td>X</td>
<td>X</td>
<td>X</td>
</tr>
</tbody>
</table>
如果可用内存大于所需的内存,那么您无需在此处做任何事情,否则您需要添加交换内存以增加RAM上的可用空间。
如果RAM的可用内存已经用于所需的内存,那么您需要配置git来利用它。您可以通过以下方式做到这一点:
free -h
希望这会有所帮助。
答案 7 :(得分:0)
我在使用具有1G RAM的Ubuntu时遇到了相同的问题,并且添加了一些交换空间(增加了1G)。它正在工作。
答案 8 :(得分:-1)
经过长时间的搜索并没有得到解决方案,我沮丧地将“999999999”分配给postbuffer,它创造了奇迹。 ;)
[http]
postbuffer = 9999999999
试试这个也可能对你有用。祝好运。 :)