24

基本问题是有时当我这样做时

git pull upstream master

我明白了

remote: Counting objects: 172, done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 119 (delta 45), reused 95 (delta 21)
      0 [main] git 8660 fork: child -1 - forked process 4520 died unexpectedly, retry 0, exit code -1073741515, errno 11
error: cannot fork() for index-pack: Resource temporarily unavailable
fatal: fetch-pack: unable to fork off index-pack

每次退出代码都是相同的,对象的数量当然会随着进程的数量而变化。我在 Windows 7 上通过 ssh 对 github 进行公钥身份验证。无论有无 ssh-agent,都会发生这种情况。几个月来我一直遇到这个问题,并通过切换到运行 Git Bash (MingW32) 来解决它,每当它出现时(几乎每次都有一些存储库,偶尔或从不使用其他存储库)。但是,我通常更喜欢 Cygwin 环境,并且我的大部分东西都在那里设置,所以当我被迫这样做时,这是一个拖累。

不久前,我看到这篇文章http://cygwin.com/ml/cygwin/2012-03/msg00025.html并在阅读后希望下次我更新 Cygwin 时该修复程序也能解决我的问题。它没有,但我不确定修复程序是否已发布,但我今天再次更新并且它正在发生。

我注意到网络上有大量关于与 Cygwin git 的 fork() 相关的错误的电子邮件,但没有用于拉取,所以我的问题是,以前有没有人在拉取时看到过这个,是什么原因造成的?有什么方法可以防止它发生(除了修补 git 或 cygwin 或使用其他一些实施课程:))。

有趣的是,我完全没有看到可以在网络上找到相关 Cygwin/git 邮件的错误。

4

5 回答 5

35

这是在这里解决的:http: //cygwin.wikia.com/wiki/Rebaseall

简而言之,关闭所有窗口并运行:

C:\cygwin\bin\dash.exe -c '/usr/bin/rebaseall -v'

这解决了与分叉相关的所有问题。我从 emacs 和 git 分叉 aspell 时遇到了问题。

于 2013-07-12T23:59:26.553 回答
26

好的,我想我应该分享一下。我有同样的问题,但我有一个解决方法。问题似乎是PATH的长度。如果我执行 git pull,我会遇到 fork 失败:

$ git pull*强调文本*
      2 [main] git 7384 fork: child -1 - fork 进程 7420 意外死亡,重试 0,退出代码 -1073741515,errno 11
错误:无法 fork() for rev-list:资源暂时不可用
错误:无法运行“git rev-list”
远程:计数对象:728,完成。
远程:压缩对象:100% (456/456),完成。
 907550 [main] git 7384 fork: child -1 - fork 进程 7436 意外死亡,重试 0,退出代码 -1073741515,errno 11
错误:无法 fork() 用于索引包:资源暂时不可用
致命:提取包:无法分叉索引包

但是,如果我在运行 git 之前将 PATH 设置为非常小的值,它会起作用:

$ PATH=/usr/bin git pull
远程:计数对象:728,完成。
远程:压缩对象:100% (456/456),完成。
远程:总计 464(增量 337),重复使用 9(增量 6)
接收对象:100% (464/464),153.36 KiB,完成。
解决增量:100% (337/337),完成了 107 个本地对象。
来自 git://cmake.org/cmake

如果它适用于你们中的任何人,我会感兴趣吗?

于 2012-11-07T18:58:02.027 回答
4

我也遇到了同样的问题,重启系统解决了。

于 2013-07-23T12:43:46.730 回答
2

我知道已经过去了一段时间,但我发现这是使用 MobaXterm 应用程序内置的 cygwin 平台搜索我自己非常相似的问题。正在拉出我不存在的头发试图弄清楚,最后它通过简单的重新启动来修复。

我再次验证了这适用于第二台 Windows 10 机器、新安装的 MobaXterm + git 应用程序以及尝试从 github 存储库中提取。相同的错误:“错误:不能 fork() for index-pack:资源暂时不可用”已实现,并且简单的计算机重启修复了它。

于 2016-06-16T20:14:30.153 回答
-3

而不是设置 PATH 变量或使用 git 的完整路径(一次),这应该也可以:

git=`which git`
git pull

这会将 git 分配给连续调用的完整路径。现在,如果 git 在另一个程序中使用(比如 make),它就可以了。

于 2013-08-28T04:50:48.790 回答