为了方便起见,我在我的~/..git/config文件中放置了这样的内容:
url = https://MYUSERNAME@github.com/COMPANY/PROJECT.git这种方式,git只要求密码在拉/推。但是现在更多的人不得不推拉,所以我们认为这也会让git询问用户名:
url = https://github.com/COMPANY/PROJECT.git但是git现在没有任何要求,这是git拉的一个示例结果:
错误:请求的URL在访问https://github.com/COMPANY/PROJECT.git/info/refs时返回错误: 403 致命: HTTP请求失败
如何强制git按预期要求提供用户名和密码?
发布于 2014-05-26 10:15:33
我现在在一些不同的服务器上工作,我注意到这个问题影响到git 1.7.0.4,而不是新的1.7.9.5。因此,如果可能的话,任何遇到同样问题的人都应该升级他们的git。
@jszakmeister建议询问git邮件列表,但是在阅读了这个堆栈溢出线程和这个github页面之后,我认为没有意义,如果没有一个很好的解决方案,它看起来就像是一个已知的问题。Github说,他们推荐的是git 1.7.10,在堆叠溢出讨论中的人提出了一些并不能真正解决我问题的建议。因此,我想唯一的选择是更新你的git -让我们考虑解决方案和这个问题的答案。
发布于 2013-10-29 10:25:41
您使用的是凭据助手吗?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或者,如果网址上没有“.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。您可能设置了一些credential.<url>块,如这个手册页中所述。或者,您可以使用它来更改用户名。
https://stackoverflow.com/questions/19654723
复制相似问题