在访问gitlab时,使用游览器能够正常打开git项目,但是使用git pull命令时,出现阻塞无响应。
在powershell中执行如下命令,查看调试日志:
$env:GIT_CURL_VERBOSE=1; git pull关闭调试:
Remove-Item Env:\GIT_CURL_VERBOSE可以在查看git的认证器
git config --get-all credential.helper你的 Git 配置了两个密码管理器:
1.manager: 这是标准的 Windows 凭据管理器。就是我们之前让你去删除密码的那个图形化工具。
2.cache: 这是一个 Git 内置的内存缓存。它会把密码在内存里缓存一小段时间(默认是15分钟)。问题就出在这里:
你删除了 manager 里的密码,但是那个错误的 OAUTH_USER 凭据还活在 cache(内存缓存)里。所以每次你 git pull,Git 都会先问 cache,cache 把错误的密码给了它,导致 Git 根本没有机会去问 manager 或者弹窗问你。
这就是为什么即使你删除了 Windows 凭据,问题依旧存在。
解决方案
我们需要修正这个错误的配置,把多余的 cache 管理器去掉,只保留标准的 manager。
请打开命令行,执行下面两个命令,来彻底清理并重置你的密码管理器配置:
第一步:删除所有旧的配置
git config --global --unset-all credential.helper第二步:设置回标准的 Windows 凭据管理器
git config --global credential.helper manager最后一步:重新拉取
完成以上两步配置后,你的 Git 凭据系统就恢复正常了。
现在,请再次进入 scripts 目录,执行:
git pull