Git / Bash在Windows 7 x64中速度非常慢

在开发一个小型项目期间,我一直在Windows和Ubuntu上使用Git,经常在两者之间来回翻转。 我遇到的问题是Git / Bash一直变慢。 当我说慢时,我的意思是运行cd需要8-25秒的时间,运行git命令需要5-20秒,而ls最多可能需要30秒。 不用说,这不好玩,更不用说没有生产力了。 我知道Git在Windows上比较慢,但这很荒谬。

对我而言,暂时工作的一种解决方案是禁用我的网络连接(如本答案中的建议),启动git,然后重新连接。 有时候这样做会持续很长时间,但最终性能总是会下降。 我已经通过msysgit讨论组,SO,msysgit问题列表等等几个星期来关闭,但我一直无法找到可行的解决方案。

到目前为止,我试过了:

  • 将git&project文件夹添加到病毒扫描程序的排除列表中
  • 完全禁用我的病毒扫描器(Kaspersky IS 2011)
  • 确保Outlook未运行(Outlook 2007)
  • 关闭所有其他应用程序
  • 以管理员身份运行git
  • 禁用网络连接,启动git并禁用连接
  • 禁用网络连接,启动git,重新启用连接(仅偶尔使用)
  • 运行git gc
  • 以上的组合
  • 我确实读过一些人已经成功禁用bash完成,但理想情况下我想保持活跃。 msysgit的版本是1.7.3.1-preview20101002,操作系统是Windows 7 x64。 可以预见,在Linux上运行相同的东西闪电般快。 我会专门使用Linux,但我也需要在Windows中运行一些东西(某些应用程序,测试等)。

    有没有人遇到类似的问题? 如果是这样,底层问题是什么,解决方案是什么(如果有的话)?

    编辑:这超出了只是git仓库,但仅供参考,我一直使用git的回购已经很小:最多4-50个文件。


    您可以通过运行三个命令来设置一些配置选项,从而显着加快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问题,因此您不需要以admin身份运行git(更新:在Git for Windows 2.8中默认启用)

  • gc.auto最大限度地减少.git /


  • 你的Bash提示中显示Git信息吗? 如果是这样,也许你无意中在每个命令上做了太多的工作。 要测试这个理论,请在Bash中尝试以下临时更改:

    export PS1='$'
    

    我的Windows主目录在网络上,我怀疑Git Bash命令首先在那里寻找。 果然,当我查看$ PATH时,它首先列出/ h / bin,其中/ h是Windows文件服务器上的共享,即使/ h / bin不存在。 我编辑了/ etc / profile并将注释放在$ PATH中的export命令注释掉了:

    #export PATH="$HOME/bin:$PATH"
    

    这使得我的命令运行得更快,可能是因为Git Bash不再通过网络查看可执行文件。 我的/ etc / profile是c: Program Files(x86) Git etc profile。

    链接地址: http://www.djcxy.com/p/43565.html

    上一篇: Git/Bash is extremely slow in Windows 7 x64

    下一篇: dot "..." in Git diff commit ranges?