Git在Windows 10上运行速度极慢

3
我有一台装有SSD、16GB内存和i7处理器的Windows 10笔记本电脑。
我阅读了这个帖子,但没有任何解决方案可以帮助我。链接如下: Git/Bash is extremely slow in Windows 7 x64 我尝试在以下场景中使用Git:
1. 命令提示符 2. Git Bash Shell 3. Visual Studio 2015 4. Source Tree 所有这些场景都几乎无法使用。例如,在我开始写这篇问题之前,我从命令提示符运行了以下命令:
git flow feature start "Separate_Cash_Incentives"
它已经运行了十多分钟,但还没有完成。
当我查看任务管理器时,我的CPU利用率为10%,内存利用率为40%,磁盘利用率为5%。
当前有10个“Git for Windows”进程正在运行,所有进程的CPU占用率均为0%。
我该如何解决这个问题?
谢谢!
编辑:看起来大部分缓慢发生在创建或合并分支时。只是进行简单的提交或推送非常快。

如果手动合并分支,需要多长时间?您是否设置了任何合并工具?您的存储库很大吗?在合并中是否有许多冲突?在合并期间是否有其他流程? - max630
在提到“创建分支”时,是否也意味着要检出它?创建分支本身不可能很慢,基本上是无操作。 - max630
我使用git flow进行分支合并。当我说创建一个分支时,我指的是使用git flow feature start创建一个新的带有特性名称的分支。相对于生产应用程序而言,该存储库非常小。它是一个具有单个项目文件的MVC Web应用程序。在合并时没有冲突。此外,完成合并需要10-20分钟。 - jkruer01
echo $HOME在Git Bash中告诉你什么?它不是一些“M:\”吗? - max630
@max630 它显示 /c/Users/jkruer - jkruer01
显示剩余2条评论
2个回答

3

只是为了测试,尝试并且

尝试并且:

  • unzip PortableGit-2.12.2.2-64-bit.7z.exe (if you have a Windows 64 bits) anywhere you want.
    For instance: C:\git\2.12.2.2
  • open a regular CMD console and set a PATH to:

    set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
    set PATH=%PATH%;C:\git\2.12.2.2\bin;C:\git\2.12.2.2\cmd;C:\git\2.12.2.2\usr\bin;C:\git\2.12.2.2\mingw64\bin
    
然后输入bash -l -i,查看Git是否仍然很慢。
目标是确保您的PATH中没有与其他软件冲突的情况。
此外,尝试(进行测试)关闭您的防病毒软件,看看是否有任何副作用。
最后,请确保您的代码库位于本地驱动器上(而不是通过网络或共享挂载的文件夹访问)。
还需要测试一下,是否一个简单的例外规则(例如在git安装文件夹上)就足以使git正常运行(即,如果AV设置为不检查其git安装文件夹)。

看起来大部分的缓慢发生在创建或合并分支时。

说到合并,Git 2.28 (2020年第三季度) 将包括一些针对常见情况的代码优化。

请参阅 提交 8777616 (2020年5月19日),作者为 Andrew Ng (andrewyng)
(由 Junio C Hamano -- gitster -- 合并于 提交 0739479, 2020年6月2日)

merge: 优化跳过单一策略的evaluate_result

签名作者:Andrew Ng

对于只有一个策略的合并,evaluate_result()的结果实际上没有被使用,因此不需要,因此可以完全避免。

在Windows上,这种优化可以将递归合并单个提交与LLVM存储库所需的时间减半


我以管理员身份打开了命令提示符。我执行了您建议的步骤。当我运行bash -l -i时,我收到以下消息:mkdir: 无法更改'/dev/shm'的权限:权限被拒绝。mkdir: 无法更改'/dev/mqueue'的权限:权限被拒绝。然后它运行了几行列出文件夹名称-> '/etc/...'。 - jkruer01
@jkruer01 不需要管理员权限:以普通用户身份打开,然后再试一次。 - VonC
这个进程仍在运行中。到目前为止已经运行了3分钟38秒。还没有完成。 - jkruer01
@jkruer01 git flow 仍然引用 C:\program Files:您需要检查 git flow 的安装方式。 - VonC
第一次是在我设置PATH变量之前。然后我设置了PATH变量,它正在引用C:\git\2.12.2.2。 - jkruer01
显示剩余14条评论

0

你可以尝试在完全卸载后重新安装Git,然后在Git Bash中尝试运行那些命令。


我会试一下。卸载后,重新安装前是否有任何设置或文件被缓存到任何地方,需要手动删除? - jkruer01
是的,你需要卸载HKEY和缓存数据。如果你想节省手动卸载它们的时间,可以使用这个软件链接。如果还是不行,请告诉我。 - Brijesh Shah
抱歉,我忘记添加链接了。这是链接:http://www.ursoftware.com/ 您可以通过此软件卸载git,并删除HKEY和缓存数据。 - Brijesh Shah
我认为你必须转向支持git的其他CLI。 - Brijesh Shah
您可以尝试使用Git Shell。看看它是否适合您。 - Brijesh Shah
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接