遇到一个奇怪的问题,重启电脑以后,使用Git Bash 弹出对话框非常慢,弹出来以后显示当前路径也非常慢,输入任何指令慢,反馈也非常慢,多次重启重装都无法解决。
https://stackoverflow.com/questions/42888024/git-bash-mintty-is-extremely-slow-on-windows-10-os
以此条问答,试遍了了所有方案,全都不能解决
简单说就是git找不到HOME所在路径,所以导致了延迟启动,这个简单,环境变量里直接加上HOME,指定到C:\Users\你的用户名
,这个问题一般可能会出现在Linux那边,windows其实反倒不会
部分笔记本双显卡的情况下,AMD的显卡某个驱动会导致git显示有问题,更新或者禁用显卡(为了git不要显卡了,有点脑残)就能解决
__git_ps1
这个是git目录下/etc/profile
中的一段命令行调用的代码,但是新版本git早就没有这个东西,所以无效
fast_git_ps1 ()
{
printf -- "$(git branch 2>/dev/null | grep -e '\* ' | sed 's/^..\(.*\)/ {\1} /')"
}
PS1='\[\033]0;$MSYSTEM:\w\007
\033[32m\]\u@\h \[\033[33m\w$(fast_git_ps1)\033[0m\]
$ '
这个简单,就是环境变量中path里可能有多个git或者多种包含其他库的循环依赖什么的,导致这里git启动有问题
只要是正常安装的git,大部分是不会有管理员的问题的
https://stackoverflow.com/questions/37182847/how-do-i-disable-git-credential-manager-for-windows
git在启动和初始化的时候,是需要拿用户的账号密码,甚至包含仓库的各种上游信息的,所以如果是电脑所在的AD域出现了问题,确实有可能导致这里延迟非常高
普遍国内360会针对git,导致git启动和操作响应特别慢,但是windows自带的firewall并不会,就算加了白名单或者是直接关闭整个防火墙,也不能解决这个问题
类似的电脑管家之类的对于文件有防护或者是什么的,都有可能拖慢git
还是PS1的问题,但是这里通过统计信息可以看到哪条命令执行的慢,时间都被哪个阶段消耗了
time __git_ps1
(main)
real 0m0.290s
user 0m0.015s
sys 0m0.030s
不过依然没什么卵用,并不知道具体细节在哪里
我也有这种情况,虽然也有人提出来了解决办法,但是对我并没有用
简单说他非常类似上面的Credentials问题,git默认密码等信息是存储在db里的,当然也可以存储在本地文件里
click start
type "git bash"
right click icon, left click "Run as administrator"
# get current user entry and cache it in /etc/passwd
mkpasswd -c > /etc/passwd
# edit nsswitch and comment out "db" to prevent accessing Microsoft AD
vim /etc/nsswitch.conf
passwd: files # db
group: files # db
而一旦网络有问题,访问db有巨大延迟,就会导致实际git bash 延迟
虽然他非常解决真相,但是还是没解决我的问题
.bash_history文件是所有命令行操作的历史,如果不小心执行了什么批处理文件或者什么死循环之类的东西,可能会导致这个历史文件内容膨胀到巨大,而每次启动git也需要加载历史操作,方便上下按键显示命令
然而我这个文件是正常的
开了FIPS会导致加密算法不同,git直接无法解析之前的加密内容了,自然也就超时了
git config --global core.preloadindex true
git config --global core.fscache true
git config --global gc.auto 256
毫无卵用
重装老版本的git或者是最新都不起作用
如果开启了VPN,可能会导致VPN代理了某些不该被代理的地址,实际并没有
但是有一种特殊情况,某些git的user用户路径或者是存储的路径是存在于远端的或者被云同步了,这就会导致git每次启动的时候查询这些文件需要先从云端拿最新的,进而导致git卡顿
大概率可以解决,但是小小git他也配?
也有说可能是git调用了什么东西,可以通过资源监控看出来,实际上无论是cpu、网络,还是磁盘占用,git都没啥突出的,反倒是git的经常出现长时间挂起,这个很反常,但是这是果,并不能找到他的因
由于我也有断网后git bash很快,联网后git bash非常慢的现象,所以盲猜和系统密码或者权限认证相关的东西有关。
于是乎打开了windows用户认证
发现好像这里是有windows备份的,结合之前Sticky Notes出现的认证问题,可能是我windows存储的账号密码同步有问题?
于是验证,果然报错
那这里就转而解决这个问题了,取消了代理,直接裸连,让他转圈转了几分钟,然后git恢复正常
弱智问题,解决起来简单,但是找到发生的条件也太难了点
https://stackoverflow.com/questions/42888024/git-bash-mintty-is-extremely-slow-on-windows-10-os
https://ask.csdn.net/questions/1095655
https://www.bilibili.com/read/cv17411474/