在访问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