【问题标题】:Set git to always prompt for credentials将 git 设置为始终提示输入凭据
【发布时间】:2019-09-20 21:20:41
【问题描述】:

由于有一些专门的硬件,我们有一台机器与一些开发人员共享。我希望 git 提交和推送始终提示输入凭据。我已经尝试了一些在 SO 上找到的修复程序,包括 git config --global --unset credential.helper 以及编辑配置以在 [core] 下包含 askpass =。在做了这两个之后,当我尝试提交时我仍然得到这个:

PS C:\Projects\Windows\projectname> git commit -m "testing shared credentials"

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'user@pcname.(none)')

我不想设置默认身份。我希望它每次都要求输入用户名和密码。这可能吗?

编辑:我可以设置默认身份“通用开发人员”或其他内容,但仍会提示输入凭据。

【问题讨论】:

  • Git: force user and password prompt 的可能重复项。
  • @EternalHour 这可能不是一个骗局。 OP 将凭据(登录名/密码)与标识(与身份验证无关的用户名/电子邮件)混淆了。
  • @phd - 这就是我没有投赞成票的原因。现在看,问题似乎是user.email的配置。
  • 我建议每个开发人员都有自己的代码克隆,即使是同一台机器或帐户。然后在每个克隆上本地设置凭据。
  • 我可能在帖子中混淆了身份验证和身份,但我不希望保留任何一个

标签: git


【解决方案1】:

我希望它每次都要求输入用户名和密码。这可能吗?

关于身份

见“How do I make git block commits if user email isn't set?

git config --global user.useConfigOnly true

With Git 2.21,与git stash 一起使用效果更好)

只要您不设置全局或本地用户名/电子邮件,Git 就会在每次提交时询问 user.name/email。

然后,对于每个提交,您可以在命令行上指定它(仅适用于该提交)

git -c user.name="My Name" -c user.email=my@email.com commit -m "my new commit"

一旦提交完成,任何新的提交都会再次询问您的用户名/电子邮件。
强制您在每次提交时指定它们,如上所示。

我可以设置“通用开发人员”或其他东西的默认身份

这是一个可怕的想法:你确实想知道谁在每次提交时做了什么。

如果最近必须开发一个 git 包装器来精确地强制用户在他/她的第一个 git 命令上选择他/她的姓名/电子邮件,并将其存储在 /tmp/git.xxx文件,其中 xxx 是当前 bash 的进程 ID。
这样,同一个包装器就能够为在同一个 shell 会话中完成的每个后续 git 命令设置正确的作者/电子邮件(可能是同一个用户)


关于密码(认证)

请务必使用:

Git 会在每次推/拉时询问用户名/密码。
我确实确认,是否没有凭据缓存,是 HTTPS 用于远程存储库 URL(不是 SSH),每次拉/推/克隆操作都会出现提示。

【讨论】:

  • "但是一旦你为那个 repo 设置了一个身份,它就不会再询问了。"这不是我想要的。对不起。
  • @ScottBeeson 好的。我已经重写/修改了答案以强制 Git 在 每个 提交时询问你 user.name/email。
  • 您链接的“无凭证助手”问题我已经尝试过了。正如您在接受答案的 cmets 中看到的那样,它要么不再起作用,要么对所有人都不起作用。
  • @ScottBeeson 答案的第一部分确实解决了您最初的问题,不是吗?
  • 不,因为我希望它提示。我不想强迫开发人员将他们的提交命令更改为在一个盒子上如此笨拙的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-04
  • 1970-01-01
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多