我喜欢git并且在OS X上经常使用它。在工作中,我们在Windows上使用svn,但是一旦工具完全成熟(不仅仅是TortoiseGit),还希望迁移到git,而且还有类似于VisualSVN提供的非常好的Visual Studio集成的东西) 。但我离题了......
我最近在我的Windows 7计算机上安装了msysgit,并且当使用包含的bash版本时,它骇人地慢。而不仅仅是git操作; clear
大约需要五个秒。 AAAAH!
有没有人遇到过类似的问题?
编辑:出现 msysgit与UAC的效果不佳,可能只是因为在XP上运行或运行Vista或7 UAC禁用;使用Run as administrator
启动Git Bash会产生我在OS X中看到的闪电速度(或者在没有网络连接的情况下启动Git Bash后的7点 - 请参阅@Gauthier回答)。
编辑2 :AH HA!请参阅我的回答。
答案 0 :(得分:53)
通过运行三个命令设置一些配置选项,您可以在Windows上显着加快Git的速度:
git config --global core.preloadindex true
git config --global core.fscache true
git config --global gc.auto 256
注意:
core.preloadindex
并行进行文件系统操作以隐藏延迟(更新:默认情况下在git 2.1中启用)
core.fscache
修复了UAC问题,因此您无需以管理员身份运行Git(更新:默认情况下在Git for Windows 2.8中启用)
gc.auto
最小化.git /
答案 1 :(得分:36)
Vista或7上的缓慢解决方案似乎是使用Run as administrator
运行Git Bash(或禁用UAC进行Git Bash shortcut ...或禁用UAC entirely )。不同的是夜晚和白天,使用7上的git再次很棒。
这似乎与known issue有关,正如我推测的那样,XP as a development environment for msysgit是部分责任。
答案 2 :(得分:13)
对我来说,问题是在shell提示符中使用__git_ps1 - 我猜是因为msysgit中磁盘访问速度慢。
解决方法是从/ etc / profile
中的PS1 = ...行中删除$(__ git_ps1)快速测试是否适用此解决方案:在git shell中输入 导出PS1 ='$' 并检查你的运作速度。
答案 3 :(得分:12)
在新机器上尝试了所有提示(包括我的其他答案中的提示),但是它们没有用,Git仍然很慢。
然后我看了一下virusscanning软件(已预先安装):我禁用了迈克菲安全中心的实时扫描,并且presto:git现在非常快! “git svn rebase”所需时间从30秒降至5秒(!)。
我希望这对于在Windows上仍然存在缓慢Git问题的其他人有帮助,我已经失去了几个小时来解决这个问题。
答案 4 :(得分: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
只要我记得我的网络暂时被切断,就能得到一种享受。
(Win 7 Professional SP1,Git版本1.7.8-preview20111206)
答案 5 :(得分:5)
我的一位同事在Outlook运行时都有这种行为。 尝试杀死前景并再次测试。
您也可以尝试测试:
答案 6 :(得分:3)
我们发现,在某些用户帐户上运行时,会在调用WaitForSingleObject()
时阻止单独的git.exe实例,因此一次只能运行一次git.exe操作。更改用户帐户解决了这个问题。
答案 7 :(得分:3)
我有MacAffee,并告诉它排除.git目录和实时扫描的所有子目录解决了性能问题。
答案 8 :(得分:1)
正如在this issue中找到的那样,在UAC虚拟化关闭的情况下运行(完全禁用UAC不需要它)会产生很大的不同。
This post解释了如何关闭它(请参阅帖子的底部,只有一个注册表设置)。
在我正在连接的一个(大)SVN回购中,只需进行上述更改就可以将“git svn rebase”所需的时间从15秒减少到5秒,这是3倍的改进。
答案 9 :(得分:1)
如果关闭UAC无法提高性能,请尝试关闭luafv驱动程序。在尝试了这个页面上的几乎所有内容以及几个类似的问题后,这对我有用。 Git从非常缓慢变为相当不错。
打开'regedit'并找到注册表项
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/luafv
将Start
的值从2更改为4.
我找到了有关如何停用luafv
here的详细信息。请注意,我个人不知道luafv
是什么或做了什么。该页面提供了各种警告,如果你关闭它可能会发生的坏事,你应该认真对待。
编辑:下面的评论指出我得到了错误的方法(链接正确的方式)。现在修好了。对于我的注册管理机构遭遇破坏的人们抱歉:)
答案 10 :(得分:1)
搞乱Windows 7 UAC的另一种方法可能是在Program Files文件夹之外安装mysysgit。例如,而不是" C:\ Program Files(x86)\ Git",请尝试在" C:\ git"
中安装我试图摆弄'以管理员身份运行'和UAC控制无济于事,但放弃并开始全新安装。我之前的最大速度是15KiB / s,但现在已超过60kiB / s。
答案 11 :(得分:1)
我刚刚对此进行了一段时间的故障排除,并且很难找到问题的根源。最后,我发现了两件具有重大影响的事情:
答案 12 :(得分:0)
我在Windows 7 x64上运行git for Windows(msysgit)作为受限用户帐户已经遇到了同样的问题。从我在这里和其他地方读到的,共同的主题似乎是缺乏管理权限和/或UAC。由于UAC在我的系统上已关闭,因此它尝试在程序文件目录中编写/删除某些内容的解释对我来说是最有意义的。
无论如何,我通过安装带有zipinstaller的便携版git 1.8解决了我的问题。请注意,我必须解压缩.7z分发文件并将其重新打包为zip文件,以便zipinstaller正常工作。我还必须手动将该目录添加到我的系统路径。
现在表现还不错。即使它安装在Program Files(x86)目录中,我没有作为受限用户的权限,它似乎也没有遇到同样的问题。我将此归因于便携式版本在写入/删除文件的位置(可能是这种情况)或从1.7升级到1.8的位置更为保守。我不打算确定哪一个是原因,足以说它现在更好地工作了 。
答案 13 :(得分:0)
你可能想尝试卸载msysgit,重启windows,安装最新版本的msysgit。它似乎为我做了伎俩。我在这里找到了这个建议:
https://stackoverflow.com/a/4506192/1413941
修改强>
PS我在遇到缓慢的Git问题之前已经禁用了UAC,因此我不知道是否需要禁用UAC才能让Git快速运行。
答案 14 :(得分:0)
这对我有用。 不要指望它将是一个适合所有解决方案。
检查bash和windows中的$ HOME环境变量。 如果它指向用户帐户,请检查用户的Windows配置文件/权限。 相应地更改用户帐户或$ HOME。
答案 15 :(得分:0)
这里的问题可能是bash-completion如果启用了,这在Windows上比Linux慢很多。
尝试将PS1变量设置为像“$”这样的简单变量,看看这是否会加快速度。如果确实如此,请注意在最近的git-versions中对bash-completion进行了一些优化。也许你需要升级。
答案 16 :(得分:0)
最好的解决方案是以管理员身份运行,正如所指出的那样。但是,至少快速使 git status 的另一个选项是 trustctime = false 。在此之前 git status 大约需要30秒,之后它与输出中显示的数量相同 - 需要X秒才能...
答案 17 :(得分:0)
通过更改以下git配置,您可能也会获得重要的性能提升:
git config --global status.submoduleSummary false
在Window 7 x64上运行简单git status
命令时,我的计算机运行时间超过30秒。定义此选项后,命令立即生效。
如下页所述,激活Git自己的跟踪帮助我找到了问题的根源,这可能与您的安装有所不同: https://github.com/msysgit/msysgit/wiki/Diagnosing-why-Git-is-so-slow
答案 18 :(得分:-4)
这可能是分析您的Git存储库的提示问题。您可以通过在Git存储库之外的某处“清除”来进行测试。您可以通过修补git-completion.bash或使用core.filemode播放技巧来加速它。
至于Visual Studio集成:这是开源。期望别人免费为你工作是不公平的。
我也觉得在msysGit邮件列表上问这个问题很有意思,但现在我离题了。