Git不要求输入用户名

7

我在Github上独自完成了一个项目的版本控制,为了方便起见,我在我的~/.git/config文件中添加了以下内容:

url = https://MYUSERNAME@github.com/COMPANY/PROJECT.git

这样设置后,git仅在pull/push时询问密码。但是现在有更多的人需要进行push和pull操作,所以我们认为这会让git也要求输入用户名:
url = https://github.com/COMPANY/PROJECT.git

但是现在Git没有要求任何内容,这是Git pull的示例结果:
错误:访问https://github.com/COMPANY/PROJECT.git/info/refs时,请求的URL返回错误403。
致命错误:HTTP请求失败。
如何强制Git按预期要求输入用户名和密码?

你是否考虑过基于证书的认证 - Philipp
@Philipp 我在考虑尝试其他的身份验证方法,但现在我想让最基本的方法起作用。 - Rafał G.
2个回答

4
我现在在一些不同的服务器上工作,我注意到这个问题影响git 1.7.0.4,但不影响更新的1.7.9.5版本。因此,任何遇到同样问题的人应该尽可能升级他们的git。
@jszakmeister建议询问git邮件列表,但是阅读了this stackoverflow threadthis github page之后,我认为没有必要这样做,这似乎是一个已知的问题,没有一个好的解决方案。Github表示他们推荐使用git 1.7.10,而stackoverflow讨论中的人们提出的建议并不能真正解决我的问题。因此,我想唯一的选择就是更新你的git - 认为这是解决方案并回答这个问题。

在Ubuntu中安装最新版本的Git - aldel
确认。之前使用的是1.7.1版本,也遇到了同样的问题;升级到2.10.2版本后,现在可以正常工作,并按预期提示输入用户名和密码。 - Aaron Wallentine

0

您是否正在使用凭证助手?git config --get credential.helper显示了什么?如果它显示了一些内容,那么可能信息被凭证助手缓存了。删除缓存的一种方法是:

printf "protocol=https\nhost=github.com\npath=COMPANY/PROJECT.git\nusername=MYUSERNAME\n\n" |
    git credential fill

如果系统提示您输入密码,那么它就没有被缓存在特定的表单中。有可能是没有在末尾加上.git 的情况下进行了缓存:
printf "protocol=https\nhost=github.com\npath=COMPANY/PROJECT\nusername=MYUSERNAME\n\n" |
    git credential fill

您可以使用以下命令删除凭据:

printf "protocol=https\nhost=github.com\npath=COMPANY/PROJECT.git\nusername=MYUSERNAME\n\n" |
    git credential remove

或者,如果URL上没有'.git':

printf "protocol=https\nhost=github.com\npath=COMPANY/PROJECT\nusername=MYUSERNAME\n\n" |
    git credential remove

请注意,这两个命令和上面的命令唯一的区别是 git credential fill 变成了 git credential remove。此外,如果您发布来自 git credential fill 命令的任何数据,请确保模糊化您的用户名和密码。
如果这些都没有帮助,您可能需要查看您的 ~/.gitconfig。您可能已经设置了一些如 this man page 中所述的 credential.<url> 块。或者,您可以使用它来更改用户名。

2
我们没有安装凭据助手,所以不是它的问题。 - Rafał G.
嗯,这是GitHub特定的问题...我会再搜索一下,这次专门找GitHub。至于凭证助手,你发布的命令没有返回任何内容,而且“git credential fill”返回“git:'credential'不是git命令。”所以我确定我们没有启用助手。 - Rafał G.
@antongorodezkiy 我也怀疑是这样,似乎与当前用户在本地服务器上的git配置有关,而不是与GitHub有关。但我仍然无法解决它。如果我解决了,我会在这里发布解决方案,如果您能自己解决它,请做同样的事情,将不胜感激。 - Rafał G.
你们两个可以向Git邮件列表git@vger.kernel.org报告吗?他们非常乐于助人,可以帮助您完成一些故障排除步骤以帮助确定问题。 - John Szakmeister
@rafal-g 当然,我会的。 - gorodezkiy
显示剩余3条评论

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