Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;Git Bash here“;启动时间太长(也是MSYS2 bash终端)_Bash_Git_Cygwin_Msys2 - Fatal编程技术网

&引用;Git Bash here“;启动时间太长(也是MSYS2 bash终端)

&引用;Git Bash here“;启动时间太长(也是MSYS2 bash终端),bash,git,cygwin,msys2,Bash,Git,Cygwin,Msys2,当我连接到公司VPN时,“Git bash here”需要1分钟启动。“ls”命令或任何其他MSYS2 linux comand也需要1分钟 如果我没有连接到VPN,一切正常 当连接到VPN时,我从Windows10cmd行执行“bash”,打开bash需要1分钟。我关闭bash并再次键入“bash”,命令立即执行。但如果我等待2或3分钟并执行“bash”,则需要1分钟才能执行 我已经寻找并尝试了许多解决方案,但没有一个对我有效: 我试过这个:这个,还有其他的,但都不起作用 当VPN处于活动状态

当我连接到公司VPN时,“Git bash here”需要1分钟启动。“ls”命令或任何其他MSYS2 linux comand也需要1分钟

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

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

我已经寻找并尝试了许多解决方案,但没有一个对我有效: 我试过这个:这个,还有其他的,但都不起作用

当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

我在这里找到了解决方案:,解决方案2:

对于适用于Windows的Git:
  • 连接到VPN
  • 连接到VPN时更新密码和组。以管理员身份打开命令行,转到
    C:\ProgramFiles\Git\usr\bin
  • 并执行此操作(因为您的计算机已连接到VPN,可能需要一段时间):

  • 然后,注释掉
    /etc/nsswitch.conf
    文件中的“db”:
  • 通过admin命令行,执行

    > notepad ..\..\etc\nsswitch.conf
    
    并注释掉“db”:

    对于MSYS2
  • 连接到VPN
  • 连接到VPN时更新密码和组。从MSYS bash控制台
  • 执行以下命令:

    $ mkpasswd -l -c > /etc/passwd
    $ mkgroup -l -c > /etc/group
    
  • 然后,注释掉
    /etc/nsswitch.conf
    文件中的“db”:
  • C:\msys64\etc\nsswitch.conf:

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

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

    如果您能提到git的版本,并且您的OSIf计算机处于脱机状态,那么这将对其他人有所帮助—所有这些都可以正常工作。这也无济于事:你的git遥控器托管在哪里?e、 g GitHub、私人公司服务器、GitLab等。您使用什么协议对服务器进行身份验证?我看到GitBash支持GitHub。我不确定,但Git Bash是否可能在启动时尝试使用GitHub进行身份验证——我认为现在有一个独立的身份验证/凭证助手插件;您公司的VPN可能会阻止GitHub,导致其速度变慢?(免责声明:我不使用Windows。在观察其他使用Windows的人的基础上说话)窗口是否启动?您能否更改您的
    $HOME/.bashrc
    并以
    echo“请稍候,正在执行.bashrc.”
    开始?您能否检查在激活VPN时防病毒是否处于活动状态?在问题中给出的链接中,您给出了类似的解决方案,但是没有很好地解释如何执行
    mkpasswd
    mkgroup
    更新。出于任何原因,使用MSYS和Git生成的passwd和group文件是相似的,但不相同
    # Begin /etc/nsswitch.conf
    passwd: files #db
    group: files #db
    
    $ mkpasswd -l -c > /etc/passwd
    $ mkgroup -l -c > /etc/group
    
    # Begin /etc/nsswitch.conf
    passwd: files #db
    group: files #db