“Git Bash here”启动时间太长(也是 MSYS2 bash 终端)

pie*_*nia 3 git bash cygwin msys2

当我连接到公司 VPN 时,“此处的 Git bash”需要 1 分钟才能启动。“ls”命令或任何其他 MSYS2 Linux 命令也需要 1 分钟。

如果我没有连接到 VPN,则一切正常。

当连接到VPN时,我从Windows 10命令行执行“bash”,打开bash需要1分钟。我关闭 bash 并再次输入“bash”,命令立即执行。但如果我等待 2 或 3 分钟并执行“bash”,则又需要 1 分钟才能执行。

我已经搜索并尝试了很多解决方案,但没有一个对我有用:我尝试了这个:Git Bash 在 Windows 7 x64 上非常慢,这个https://cygwin.com/faq.html#faq.using.startup-slow,其中其他的,但没有用。

我怀疑 VPN 处于活动状态时存在 DNS 问题。但我尝试手动更改DNS并没有解决问题。

我还测试了MSYS2单机版,版本msys2-x86_64-20210228,并删除了GIT:同样的问题!使用 bash 或任何其他 MSYS2 命令。如果未连接到 VPN,bash 窗口会立即打开,但第一次连接到 VPN 后需要 55 秒。

我的系统:

  • Git版本2.31.1.windows.1
  • Windows 10(10.0.19041 内部版本 19041)
  • msys2-x86_64-20210228

pie*_*nia 5

我在这里找到了解决方案:https://gist.github.com/k-takata/9b8d143f0f3fef5abdab,解决方案2:

对于Windows 版 Git:

  1. 连接到 VPN
  2. 连接到 VPN 时更新密码和组。以管理员身份打开命令行,转到C:\Program Files\Git\usr\bin

并执行此操作(由于您已连接到 VPN,因此可能需要一段时间):

> mkpasswd -l -c > ../../etc/passwd
> mkgroup -l -c > ../../etc/group
Run Code Online (Sandbox Code Playgroud)
  1. 然后,注释掉文件中的“db” /etc/nsswitch.conf:

从带有 admin 的命令行执行

> notepad ..\..\etc\nsswitch.conf
Run Code Online (Sandbox Code Playgroud)

并注释掉“db”:

# Begin /etc/nsswitch.conf
passwd: files #db
group: files #db
Run Code Online (Sandbox Code Playgroud)

对于MSYS2:

  1. 连接到 VPN
  2. 连接到 VPN 时更新密码和组。从 MSYS bash 控制台

执行这个:

$ mkpasswd -l -c > /etc/passwd
$ mkgroup -l -c > /etc/group
Run Code Online (Sandbox Code Playgroud)
  1. 然后,注释掉文件中的“db” /etc/nsswitch.conf:

C:\msys64\etc\nsswitch.conf :

# Begin /etc/nsswitch.conf
passwd: files #db
group: files #db
Run Code Online (Sandbox Code Playgroud)

链接中对此解决方案有一些评论:

  • 这仅适用于执行 mkpasswd/mkgroup 的用户
  • /etc/nsswitch.conf每次升级 Windows 或 MSYS2 的 Git 时都会被替换