Msysgit bash在Windows 7中非常慢

Kev*_* L. 83 git msysgit windows-7

我喜欢git并且在OS X上经常使用它在家里.在工作中,我们在Windows上使用svn,但是一旦工具完全成熟就想要迁移到git(不仅仅是TortoiseGit,还有类似于VisualSVN提供的非常好的Visual Studio集成).但我离题了......

我最近安装msysgit我的Windows 7机器上,并使用bash所包含的版本时,它的窘况慢.而不仅仅是git操作; clear大约需要五秒钟.AAAAH!

有没有人遇到过类似的问题?


编辑:似乎 msysgit与UAC没有很好的协作,可能只是一个微小的设计疏忽,因为在XP上开发或在禁用UAC的情况下运行Vista或7; 使用Run as administrator我在OS X中看到的闪电速度的结果启动Git Bash (或者在启动Git Bash w/oa网络连接后使用7 - 请参阅@Gauthier答案).

编辑2:啊哈! 看我的回答.

sho*_*zer 53

您可以通过运行三个命令来设置一些配置选项,从而显着加快Windows上的Git:

git config --global core.preloadindex true
git config --global core.fscache true
git config --global gc.auto 256
Run Code Online (Sandbox Code Playgroud)

笔记:

  • core.preloadindex 并行执行文件系统操作以隐藏延迟(更新:默认情况下在git 2.1中启用)

  • core.fscache 修复了UAC问题,因此您无需以管理员身份运行Git(更新:默认情况下在Git for Windows 2.8中启用)

  • gc.auto 最小化.git /中的文件数

  • 这对我不起作用.在我发出命令后,我的git bash仍然延迟了1-2秒. (8认同)
  • `git config --global core.fscache true`对我没有任何帮助; 但是,`git config core.fscache true`就可以了.根据[this](https://github.com/msysgit/msysgit/wiki/Diagnosing-why-Git-is-so-slow),这是因为core.fscache是​​每个repo设置. (2认同)
  • @DavidMerriman"per repo"评论只是说明你*可以*改变个人回购的这个设置.(所有设置都是如此,所以我不知道它为什么会被提及.)注释并不意味着`fscache`*only*可以作为每个repo设置.全局设置适用于计算机上的所有存储库,除非按每个存储库设置覆盖. (2认同)

Kev*_* L. 37

Vista或7上的缓慢解决方案似乎是使用Git Bash Run as administrator(或禁用UAC用于Git Bash 快捷方式 ......或完全禁用UAC ).不同的是夜晚和白天,使用7上的git再次令人敬畏.

这似乎与已知问题有关,正如我推测的那样,XP作为msysgit的开发环境是部分责任.

  • 这个问题的答案对我有用:http://stackoverflow.com/questions/4485059/git-bash-is-extremely-slow-in-windows-7-x64 (4认同)

小智 13

对我来说,问题是在shell提示符中使用__git_ps1 - 我猜是因为msysgit中的磁盘访问速度慢.

解决方法是从/ etc/profile中的PS1 = ...行中删除$(__ git_ps1)

快速测试是否适用此解决方案:在git shell中,键入export PS1 ='$'并检查操作的速度.

  • 您可以让`__git_ps1`处于活动状态,如果禁用SHOWDIRTYSTATE和/或SHOWUNTRACKEDFILES设置,请参阅http://stackoverflow.com/a/4203968/321973 (2认同)

Tom*_*Leu 12

在一台新机器上尝试了所有提示(包括我的另一个答案中的提示),但是它们没有用,Git仍然很慢.

然后我看了一下virusscanning软件(已预先安装):我禁用了迈克菲安全中心的实时扫描,并且预先确定:git现在非常快!"git svn rebase"所需时间从30秒降至5秒(!).

我希望这对于在Windows上仍然存在缓慢的Git问题的其他人有帮助,我失去了几个小时来解决这个问题.

  • 在我将git安装的整个路径添加到Avast的排除路径之后,我的Git Bash也开始变慢了!反病毒套件,git bash的启动时间低于0.5秒 (4认同)

Dan*_*ume 9

唉'以管理员身份运行'并不适合我 - 但正如Kevin L发现的那样,断开网络适配器,启动git bash,然后重新连接工作正常.所以我把它包装在批处理脚本中并在我的开始菜单中放入一个快捷方式,标记为以管理员身份运行:

netsh interface set interface "Local Area Connection" DISABLED
cd "%USERPROFILE%\Documents\Visual Studio 2010\Projects"
start cmd /c ""C:\Program Files\Git\bin\sh.exe" --login -i"
netsh interface set interface "Local Area Connection" ENABLED
Run Code Online (Sandbox Code Playgroud)

只要我记得我的网络暂时被切断,就可以享用.

(Win 7 Professional SP1,Git版本1.7.8-preview20111206)


Gau*_*ier 5

当Outlook运行时,我的一位同事就有这种行为.尝试杀死前景并再次测试.

您也可以尝试测试:

  • 没有连接到任何网络,
  • 没有防病毒运行,
  • 没有任何其他程序在运行.

  • Outlook和防病毒软件似乎都没有任何效果,但是如果我禁用我的网络连接然后启动git,即使重新连接后它也很快就会闪电(读取:"Unix").有趣... (3认同)
  • 网络连接也适用于我.我想知道它与网络连接有什么关系.奇怪的是,它在我的家庭网络中完全正常,但拒绝在我的办公网络上工作. (2认同)