问题描述
我正在运行最新的 Git For Windows 2.29.2 ,对我来说,credential.helper
默认设置为 manager-core
。我确实确认运行 git config --system --list
。
我想为 GitHub 上的任何 git 操作实现基于令牌的身份验证。因此,我继续从 Control-Panel-> Credential manger -> Windows Credential -> Generic Credentials
中删除了凭据(最初是用户名/密码组合)。
然后我执行了命令:
git credential fill
protocol=https
host=github.com`
<HIT ENTER KEY TWICE,as A blank line signals input completion>
令我惊讶的是,上述命令仍然返回凭据。我回到控制面板并确认它是否被删除并且我看不到凭据,即它们已经被删除。
为什么上面的命令会成功返回凭据。据我所知,git 也在内存中缓存凭据 15 分钟。但是,上述命令在几个小时后仍返回凭据。我尝试打开新的提示,但直到今天我碰巧注意到该行为不再可重现。
现在它按预期工作,即如果我从控制面板的凭据管理器中删除凭据,那么 git credential fill
将无法返回任何凭据,而是提示我输入凭据。
为什么即使我在几个小时后尝试过,git credential fill
还是首先返回凭据?我只是无法理解这种行为。
解决方法
git config --system list
仅显示系统级配置,请尝试使用 git config list --show-origin
。
您可以在不同的配置级别配置多个凭证助手,如果前一个不返回凭证,git 将依次使用它们,听起来您可能在其他地方配置了另一个