Git 如何访问我的 GitHub 凭据?

How is Git accessing my GitHub credentials?

我试图删除 Git 对 GitHub 上私有 GitHub 存储库的访问权限。无论我尝试什么,我都无法阻止它获得访问权限。因此我想知道它是如何进行身份验证的,这样我就可以.

我试过了

第一个:

git config --global --unset user.name
git config --global --unset user.email
git config --global --unset credential.helper

第二个

git config --global --unset-all

而且我还删除了钥匙串访问中的每个 github 条目。

当我打开一个新终端 window 并推送到私有 GitHub 存储库时,它会通过用户名和电子邮件请求(不是 密码), 推送成功

问题

我如何找出终端中的 Git 如何使用我的 GitHub 凭据将更改推送到 GitHub?

备注

在大多数 macOS 系统上,credential.helper 变量未在全局配置中设置,而是在系统配置中设置,因此您仍然启用了凭证助手。您可以通过 运行ning git config --get credential.helper 验证这一点,这可能会打印 osxkeychain.

如果您的目标是删除凭据,您可以按照 the steps outlined in the Git FAQ:

$ echo url=https://username@github.com | git credential reject

如果您只对凭据助手是否有任何凭据感兴趣,您可以运行这样:

$ echo url=https://username@github.com | git credential fill | less

这将打印包含 password= 和密码的行。请注意,在这种情况下,我将其通过管道传输到 less 以防止它在屏幕上长期打印。

根据 GitHub Docs,对于 macOS:

Through the command line, you can use the credential helper directly to erase the keychain entry.

$ git credential-osxkeychain erase
host=github.com
protocol=https
> [Press Return]

If it's successful, nothing will print out. To test that it works, try and clone a private repository from GitHub. If you are prompted for a password, the keychain entry was deleted.