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

27

在我工作的地方,许多人共用同一个账户登录同一台计算机。现在我们仅出于方便起见使用shell而非图形界面。

第一次有人提交时会要求输入他们的用户名和密码,但之后所有的提交都会使用他们的账户。很抱歉我不太了解shell,但这是我第一次使用它。我用来提交和同步的命令是:

git commit -a
git push origin [branch name here]
3个回答

38
如果您使用的是Windows系统,Git的用户名和密码会被存储在控制面板中。您可以前往“控制面板”→“用户账户”→“凭据管理器:通用凭据”来删除它。

Enter image description here


4
对我来说,你就像是神一样。我花了整整4个小时才找到这个。我必须部署,现在我被拖延了,但我将永远崇拜你。我卸载并重新安装了30次 Git。你就是上帝!!! - ICanKindOfCode
我在我的钥匙串中有用于大多数客户项目相同的git凭据,但我必须在同一站点上使用不同的帐户,即两个用户都在github上,因此默认情况下它会使用我的工作钥匙串凭据,我该如何停止它并在其他项目中使用我的其他凭据。 - Shreyan Mehta

9

看起来用户的凭证已被缓存。

前往您的项目,打开.git/config文件并删除以下行:

[credential]
    helper = store
    # or helper=cache

查看git-credential-store获取更多信息。

编辑:评论中提到这是在Windows上发生的情况,因此,另一个答案更适用于从控制面板中删除凭据。


我在哪里可以找到这个文件?我在我的项目中找不到它,唯一相关的东西是.gitconfig。 - Joshua Johnson
@JoshuaJohnson,密码必须已保存在~/.netrc~/.git-credentials之一中。而且这些设置必须存在于~/.gitconfig$PROJECT_DIR/.git/config中。 - Anshul Goyal
1
@JoshuaJohnson 你解决了吗?如果我的回答有帮助,请不要忘记接受它 :) - Anshul Goyal
我使用的是Win7系统,在$PROJECT_DIR/.git/config中找到了它。但这并没有解决我的问题,即使删除了这些行后仍然没有提示。 - Jirong Hu

1

1. 前往您的存储库文件夹(在电脑上)。

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

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

3.git凭据缓存退出

4.Done!

要将其恢复为不每次都要求密码:

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

2. 将其粘贴到账户 -> SSH和GPG密钥 -> 新SSH密钥。

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接