如何在Windows的Git Bash控制台中注销?

如何在Windows的Git Bash控制台中注销?,git,github,passwords,Git,Github,Passwords,我在Windows上使用Git,版本为2.9.2.Windows.1 我处理一个存储库项目,当我推送时,它要求我输入GitHub用户名和密码。我输入了GitHub用户名和密码来更新项目 在我的下一次推送中,它不再要求我输入用户名和密码。我对项目的所有修改都已更新 看起来我的用户名和密码已“保存”。我如何“不保存”它们 我如何注销 我试过了 git config --global --unset user.name git config --global --unset user.email gi

我在Windows上使用Git,版本为2.9.2.Windows.1

我处理一个存储库项目,当我推送时,它要求我输入GitHub用户名和密码。我输入了GitHub用户名和密码来更新项目

在我的下一次推送中,它不再要求我输入用户名和密码。我对项目的所有修改都已更新

看起来我的用户名和密码已“保存”。我如何“不保存”它们

我如何注销

我试过了

git config --global --unset user.name
git config --global --unset user.email
git config --global --unset credential.helper
但他们不会让我退出


我想清除登录,以便下次推送时,它再次要求我输入用户名和密码。

首先,用户身份验证与
user.name
user.email
git config无关

其次,与旧答案“”相比,使用了(Git 2.9.2=>)

检查您的配置(
git config-l
),查看是否在那里注册了“
manager
”(或者,最近的2020+:“
manager core
”)。
如果没有,请使用以下设置:

 git config --global credential.helper manager-core
自其v1.3.0版(2016年4月)以来,它的

实际上,无论您使用的是什么“
xxx
”凭证管理器(“
xxx
”是
git config credential.helper
”的结果),您都可以执行以下操作:

printf "protocol=https\nhost=github.com" | git-credential-xxx erase

# Windows (2020-2021)
printf "protocol=https\nhost=github.com" | git-credential-manager-core erase

# Linux
printf "protocol=https\nhost=github.com" | git-credential-libsecret erase

# MacOs
printf "protocol=https\nhost=github.com" | git-credential-osxkeychain erase
这比摆弄操作系统的凭证管理器要好

git凭证xxx
可执行文件位于git安装的
usr/libexec/git-core
或(对于Windows)
mingw64/libexec/git-core
中。
在MacOS上,它应该已经在
/usr/local/git/bin/


如果
git-config-credential-manager
返回
store
,那么git使用“
store
”模式,将凭据保存到磁盘上的纯文本文件中,并且它们永远不会过期

type %USERPROFILE%\.git-credentials
我将从配置中删除特定的凭证帮助器,因为它以纯文本形式存储凭证


实际确认它是一个本机Windows凭据管理器功能,可自动(Git或not)提供凭据:

我看到“管理您的凭据”选项,出于好奇,我点击它,然后我点击“Windows凭据”,在“通用凭据”下,有“
git:github.com
”;,我点击它,有“删除”选项。我点击删除

当我执行
git推送时
,它会再次询问我的用户和密码。当我想注销时,这正是我想要的


对于Windows 10,如果您的电脑有不同的登录名(MSFT帐户),并且GitHub在另一个登录名上,如果您转到“控制面板”→ 用户帐户和搜索凭据管理器,您将看到“Web凭据”和“Windows凭据”

GitHub似乎使用在PC中注册的默认ID(Microsoft帐户)。在Windows凭据下,删除GitHub登录详细信息,然后重试推送。系统将提示您显式输入GitHub ID和密码。一旦我们登录,它将被存储为Git push的个人访问令牌


如果您使用多个帐户(这正是我来到这里的原因),在全局Git配置中取消设置凭据管理器并使用提示屏幕更有效


我无法通过credential manager文档找到如何管理多个帐户,这些文档目前还很简单。

如果您想更改帐户,请稍后:

git config --global user.name "new name"
git config --global user.email "new email"
git config --list
git help
git help commit

出现此问题的原因:

1.以前登录的帐户凭据保存在Windows凭据中

2.因此,Gitbash出现错误,不允许我们登录新凭据

对于解决方案,请执行以下步骤:

控制面板->用户帐户->管理您的凭据->Windows凭据->在通用凭据下有一些与Github相关的凭据,单击它们并单击“删除”


这将删除以前的任何登录,而不会出现任何问题。Gitbash控制台中提供了一个新的登录检查,它要求您提供登录凭据以保存它们。

此外,如果您有SSH密钥,请不要忘记删除它们。即使您删除了凭据,如果您有SSH密钥,您仍然可以自动登录

因为您确实登录了另一个帐户,而该帐户没有此repo的访问权限,如果您使用mac os,请转到Keychain access,搜索
gitlab.com
,将其删除,然后再次尝试git克隆。

我删除git凭据存储的唯一选项是以下命令。
git-credential-manager-remove

我找到了我的解决方案(感谢VonC):

转到:控制面板→ 用户帐户→ 管理您的凭据→ Windows凭据→ 在通用凭据下,有一些与GitHub相关的凭据。单击它们并单击“删除”


它将我注销,因此下次我推送时,它会要求我输入用户名和密码。

您提供的链接中可能存在@dkaz的重复项没有答案。无需编辑问题(这是您提出问题的地方,而不是您的解决方案:我已编辑我的答案以反映您的发现)Git Credential Manager最初是在Git for Windows 2.7.3中引入的:(2016年3月)可以肯定的是,该部分是存储库链接的url链接,对吗?我试过这个命令,但似乎不起作用。它说“未知命令清除。请使用git credential manager?显示帮助”@LordRixuel您使用的是什么版本的git credential manager?是的,在您的情况下,
将是“Git Credential Manager for Windows 1.5.0版”,当我用delete重试时,它会说“无法从stdin读取”,但我在回答中确实提到了“首先,用户身份验证与user.name和user.email Git config无关。”您所说的“as later”是什么意思?迄今为止唯一对我有效的解决方案
git credential manager delete
似乎永远不会重新启动
type %USERPROFILE%\.git-credentials
git config --global user.name "new name"
git config --global user.email "new email"
git config --list
git help
git help commit