如何让 Git 每次推送时都要求输入用户名和密码?

Posted

技术标签:

【中文标题】如何让 Git 每次推送时都要求输入用户名和密码?【英文标题】:How do I make Git ask for a username and password every time I push? 【发布时间】:2014-11-02 08:43:09 【问题描述】:

在我工作的地方,很多人在同一个帐户上使用同一台计算机。我们现在使用 shell 代替 GUI 只是为了方便。

第一次提交时,它会询问他们的用户名和密码,但之后只使用他们的帐户进行所有提交。很抱歉我对shell不太了解,但这是我第一次使用它。我用来提交和同步的命令是:

git commit -a
git push origin [branch name here]

【问题讨论】:

【参考方案1】:

如果您使用 Windows 系统,Git 用户名和密码存储在控制面板中。您可以前往控制面板用户帐户Credential Manager:Generic Credentials 将其删除。

【讨论】:

你是我的上帝。我花了整整 4 个小时来寻找这个。我不得不部署,现在我被推迟了,但我会永远崇拜你。我卸载并重新安装了 git 30 次。你是神!!! 我的钥匙串中有 git 凭据,这对于我的大多数客户项目都是相同的,但我必须在同一个站点中使用不同的帐户,即两个用户都只在 github 中,所以默认情况下需要我的工作钥匙串的凭据,我怎么能阻止它,我可以在我的其他项目中使用我的其他凭据【参考方案2】:

似乎正在缓存用户凭据。

转到您的项目,打开 .git/config 并删除这些行:

[credential]
    helper = store
    # or helper=cache

查看git-credential-store了解更多信息。

编辑:OP 在 cmets 中提到这发生在 Windows 中,对此,另一个答案与从控制面板中删除凭据更相关。

【讨论】:

在哪里可以找到这个文件?我在我的项目中找不到它,我唯一能找到的相关内容是 .gitconfig。 @JoshuaJohnson 密码必须保存在~/.netrc~/.git-credentials 之一。并且这些设置必须存在于~/.gitconfig$PROJECT_DIR/.git/config @JoshuaJohnson 你能解决这个问题吗?如果我的回答有帮助,不要忘记接受它:) 我在 Win7 上,只能在 $PROJECT_DIR/.git/config 中找到它。没有为我解决问题,删除这些行后仍然没有提示。【参考方案3】:

1.转到您的存储库文件夹(在 PC 上)。

2.使用HTTPS协议而不是SSH,你会在克隆时得到它。

git remote set-url origin https://.... 

3.git credential-cache exit

4.完成!

将其恢复为每次都不询问密码:

1.从您的设备复制 SSH 密钥 (~/.ssh/id_rsa.pub)。

2.粘贴到Account --> SSH & GPG keys --> New SSH key.

3.使用SSH协议而不是HTTPS,你会在克隆时得到它。

git remote set-url origin git@:..//.... 

【讨论】:

以上是关于如何让 Git 每次推送时都要求输入用户名和密码?的主要内容,如果未能解决你的问题,请参考以下文章

解决每次git提交时都要输入用户名和密码的问题

Git:git pull每次都要求输入用户名和密码

取消Git每次拉取提交推送都要输入密码

【GIT】如何让git小乌龟工具记住Git账号密码 免多次登录

github每次推送都要输入用户名和密码

git push 每次都提示输入密码解决方法