使用 git credential fill 命令时,从 Windows 凭据管理器中删除凭据仍然显示凭据

问题描述

我正在运行最新的 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 将依次使用它们,听起来您可能在其他地方配置了另一个