如何让 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 每次推送时都要求输入用户名和密码?的主要内容,如果未能解决你的问题,请参考以下文章