Cygwin在运行Git push时导致longjmp

时间:2011-09-06 16:08:13

标签: windows git command-line cygwin

我正在尝试从我的Windows 7,64位机器上的命令行运行git。它在大多数情况下工作正常。我尝试将我的本地更改推送到云中的私有存储库。

我尝试运行的命令是git push origin master

我使用Cygwin 6.1并导致以下错误。大概与我在64位机器上运行的事实相关

0 [main] git-remote-http 6168 fork: child -1 - died waiting for longjmp before initialization, retry 10, exit code 0xC0000135, errno 11 error: cannot fork() for send-pack: Resource temporarily unavailable

我按照建议here更新了我的rebaseall文件并重新启动了rebase命令。但它似乎没有帮助。

其他人可以重现问题或找到解决方案吗?

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

我使用的Cygwin咒语是“fork failure is rebase issues”。 longjmp不是问题,fork是。不幸的是,Rebase是唯一的解决方案。在过去,我使用自定义脚本来构建rebase列表。我这样做是因为你可能会遗漏一些DLL,特别是如果你有手工制作的东西。您可以使用find构建一个列表,然后使用-T将其传递给rebaseall。您还应该考虑在rebaseall中尝试不同于默认基址的不同基址,请查看-b选项。 64位计算机似乎需要比32位计算机更大的间距,因此默认情况对我来说效果不佳。

此外,如果您根据系统更改任何DLL,则需要再次进行rebase。

注意:即使在所有这个fork仍然可以在Cygwin中失败。病毒扫描程序会注入他们的DLL,这会使事情变得棘手,Windows地址空间随机化也无济于事。

答案 1 :(得分:2)

答案mfisch为我的问题提供了奇迹。

快速谷歌搜索产生了this result,这让我可以立刻再次推送。所需的软件包附带了默认的cygwin安装,所以我甚至不需要安装任何东西。

答案 2 :(得分:0)

另一种选择是使用msysgit distribution,这将允许您在不依赖于cygwin环境的情况下制作任何git命令。

另请参阅“Difference between msysgit and 'cygwin + git'?”。