Git对我的工作流程至关重要。我在装有3GB RAM的四核机器上运行Windows XP上的MSYS Git,通常它很灵敏和迅速。
突然出现了一个问题,从Git Bash命令提示符中运行任何命令,包括ls
或cd
都需要超过30秒的时间。有趣的是,从bash提示符中看起来ls
运行得相当快,我可以看到ls
的输出,但是它需要大约30秒才能返回提示符。如果我切换到Windows命令提示符(通过从开始菜单运行cmd
),git相关命令也需要很长时间才能运行。例如,git status
在任何事情发生之前可能需要接近一分钟的时间。有时进程根本无法完成。
请注意,我安装了“MSYS Git”以及常规的“MSYS”用于诸如MinGW
和make
之类的东西。
我认为问题与位于C:\Program Files\Git\bin
的sh.exe
有关。当我从bash提示符中运行ls
,或者从windows提示符中调用git
时,任务管理器会显示最多四个出现和消失的sh.exe
进程。
在这里,我正在等待ls
返回,您可以看到任务管理器运行了git.exe
和四个实例的sh.exe
:
![Here I am waiting for ls to return and you can see the task manager has git.exe running and four instances of sh.exe](https://istack.dev59.com/VSp0a.webp)
如果我在ls
进行中按下ctrl-c
,有时会出现包含以下内容的错误:
sh.exe": fork: Resource temporarily unavailable
0 [main] sh.exe" 1624 proc_subproc: Couldn't duplicate my handle<0x6FC> fo
r pid 6052, Win32 error 5
sh.exe": fork: Resource temporarily unavailable
或者对于
git status
命令:
$ git statussh.exe": fork: Resource temporarily unavailable
sh.exe": fork: Resource temporarily unavailable
sh.exe": fork: Resource temporarily unavailable
sh.exe": fork: Resource temporarily unavailable
我可以修复这个问题,让git再次快速运行吗?如果可以,怎么做?
我尝试过以下方法:
- 重启
- 将MSYS Git升级到最新版本,并重新启动
- 将MSYS升级到最新版本,并重新启动
- 卸载MSYS和仅卸载并重新安装MSYS Git,并重新启动
我非常希望不要抹掉我的计算机并重新安装Windows,但如果无法解决问题,我将这样做。如果运行 git status
或 cd
需要超过30秒,我将无法编写代码。
$PS1='$ '
选项,这是其中一个答案。 - manojlds