我只有一个分支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等。所有的人都会受到延迟的影响。
编辑:我目前正在测试以下更改。不做除非您确切地知道安全含义是什么,否则请对您的系统进行此更改。
我使用mkpasswd
和mkgroup
在本地缓存当前域信息:
mkpasswd >> /etc/passwd
mkgroup >> /etc/group
然后我从文件中删除重复的文件。(但/etc/group
在这些命令之前并不存在。)
这个想法来自Cygwin FAQ。
标题>