Git rebase 出现“Out of memory, malloc failed”错误

4

当我尝试对仓库进行变基时:

git rebase XXX YYY

我遇到了“内存不足,malloc失败”的错误:
First, rewinding head to replay your work on top of it...
fatal: Out of memory, malloc failed (tried to allocate 34537367 bytes)

git encountered an error while preparing the patches to replay
these revisions:

    3d5a7259c57b6b8a86fd6f7c44e6efa25a0e9db4..450ac9a6cf85475ab1a38b763f2f9a836a
4ba6a0

As a result, git cannot rebase them.

如果我使用 cherry-pick,它可以无错误地工作:

git checkout XXX
git cherry-pick YYY

我正在使用Windows版本1.9.4-preview20140815上的Git。机器有8GB RAM,在repo中没有大于100MB的文件,以下是与打包相关的设置:

[core]
    packedGitWindowSize = 256m
    packedGitLimit = 256m

[pack]
    packSizeLimit = 2g
    threads = 2
    deltaCacheSize = 256m
    windowMemory = 256m

我知道已经过去了将近一年,但你有没有找到关于这个问题的其他有用信息呢?我遇到了同样的问题,原因似乎是我们需要比32位git客户端更多的内存。所以逻辑上应该安装64位客户端,但这并不容易,因为我还没有找到它。看起来你必须使用64位编译器编译git代码,但是git代码似乎还没有准备好支持64位 =( 我唯一的想法是优化文件或分支,以便git可以处理它们。 - Robson
1个回答

1

首先,1.9.4-preview20140815不再是最新的git版本。您可以从此处下载最新版本。

另外,如果您认为Git在Cygwin 32位中使用了超过4GB的内存,您可以切换到Cygwin 64位


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接