Git扩展:直到昨天,一切都工作得很好。

但突然我得到这个错误时,我试图拉一些仓库使用git扩展

C:\Program Files\Git\bin\git.exe pull --progress "origin" 
Done
    0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x68560000, RegionSize 0x390000, State 0x10000
C:\Program Files\Git\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0

我克隆的所有存储库都发生了这种情况。 但是,我的git bash运行良好。 我完全不知道发生了什么。知道为什么会这样吗?


当前回答

删除旧版本的%USERPROFILE%\AppData\Local\SourceTree\app-x.xX为我工作。不知道它是如何连接到命令行git…

其他回答

克服恼人的堆错误的一个妙招是为命令行启用“遗留控制台”模式。它提供了对其他api的访问,这些api在后来的windows版本中受到了限制,因此内存分配工作得更好。

如果重新启动没有纠正这个问题(正如Greg Hegwill的回答所建议的那样),那么检查您的PATH是否有冲突的msys-1.0.dll安装(可能还有其他相关的dll)。

在我的特殊情况下,MinGW的msys安装在其bin目录(<MinGW_Install_Path>\msys\1.0\bin)中有该DLL的副本,并且它列在PATH中。Git的cmd目录列在PATH中,但它的bin没有。(Git的msys-1.0.dll版本在bin目录下。显然,MSys-Git的默认安装不会将其bin添加到PATH中。)

一个临时的修复是将Git的bin目录添加到PATH中,这样它就会出现在MinGW的路径之前。(一个更永久的修复可能涉及整理MinGW的msys和Git之间的路径冲突和/或删除重复的msys安装。)

我在LPCEXpresso构建中遇到过这个问题。如果在PATH中有C:\MinGW\bin。不知何故,我不得不删除它来摆脱这个问题,因为其他一些MinGW喜欢基于

我也有同样的问题。我在这里找到了解决方案http://jakob.engbloms.se/archives/1403

c:\msysgit\bin>rebase.exe -b 0x50000000 msys-1.0.dll

对我来说,解决方案略有不同。这是

C:\Program Files (x86)\Git\bin>rebase.exe -b 0x50000000 msys-1.0.dll

在你重基dll之前,你应该确保它没有被使用:

tasklist /m msys-1.0.dll

并备份:

copy msys-1.0.dll msys-1.0.dll.bak

如果rebase命令失败,如下所示:

ReBaseImage (msys-1.0.dll)失败,最后错误= 6

您需要依次执行以下步骤:

将dll复制到另一个目录 使用上面的命令改变副本的基础 用副本替换原来的dll。

如果有任何问题,以管理员身份运行命令

这个错误在我的Windows机器上很少发生。我最终重启了机器,错误消失了。