"git branch"命令在Windows上的Git Bash很慢



我只有一个分支main,但是当我执行git branch命令时,它需要大约30秒才能完成。其他命令,如git status,没有这个性能问题。我可以在这里检查哪些内容?

Git版本为2.36.0,运行于Windows 10。更新:

  • 打开Git Bash也很慢(大约20秒)。我尝试了解决方案https://stackoverflow.com/a/47542488/1160753。Git Bash在修改后很快打开,但是打开Git Bash的后续操作需要大约20秒。
  • 在"以管理员身份运行"下执行Git Bash时,git branch快速完成。但不是每次都是这样。有时候,同一个命令需要30秒才能完成(这是没有任何额外分支的情况下)

br

在Windows上,当PC在域中时,确保域控制器是可访问的。

<标题>

详细信息与Git一起发布的shell和命令行工具来自MSYS2项目,该项目基于Cygwin库的一个变体。作为程序启动例程的一部分,库执行若干名称查找。当系统在域中注册时,此查找将转到域控制器。在无法访问域控制器的情况下,查找将等待超时。这会导致延迟。

查找结果由Windows缓存。因此,在短时间内,后续的创业公司不必等待超时。但是最终缓存会过期,下一个程序调用必须再次等待。

Git程序git.exe是基于Cygwin库的而不是,因此不需要查找名称。它可以毫不拖延地运行。然而,许多Git命令会生成一个分页器,典型的是less,这使得受到延迟的影响;因此,Git本身似乎也会被延迟。(这并不重要;不管怎样,用户体验都很糟糕。

除此之外,还有许多Git运行命令行工具的情况:钩子、textconv过滤器、ssh等。所有的人都会受到延迟的影响。

编辑:我目前正在测试以下更改。不做除非您确切地知道安全含义是什么,否则请对您的系统进行此更改。

我使用mkpasswdmkgroup在本地缓存当前域信息:

mkpasswd >> /etc/passwd
mkgroup >> /etc/group

然后我从文件中删除重复的文件。(但/etc/group在这些命令之前并不存在。)

这个想法来自Cygwin FAQ。

最新更新