我正在尝试将新的repo推送到github并因为git缓存了meatwork
凭据而无法这样做。
$ git push -u origin master
remote: Permission to me/me.github.io.git denied to meatwork.
经过一番挖掘后,我想也许是credential.helper是问题所在,所以我试图删除它git config仍然返回osxkeychain,即使我已经删除了所有设置。
$ git config --system credential.helper
$ git config --global credential.helper
$ git config --local credential.helper
$ git config credential.helper
osxkeychain
$
还看了git credential-osxkeychain,但它只是挂起
$ git credential-osxkeychain get
所以无论如何回到原来的问题,如何指定或覆盖或重置push使用的默认用户。我检查了user.name
和user.email
设置,并将其设置为正确的用户(不是meatwork
)。
$ git config --local user.name
$ git config --global user.name
me
$ git config --system user.name
$ git config --local user.email
$ git config --global user.email
me@myhome.com
$ git config --system user.email
那么git从哪里获取meatwork
凭据以及如何阻止它。
答案 0 :(得分:7)
这里的问题相同,我的解决方案是(在Mac上):
看看它现在是否有效。
我的情况是,有人使用我的Mac登录他的Github,Mac记得他的名字和密码,这就是为什么拒绝他的原因......
-
答案 1 :(得分:5)
嗯,问题的第二部分的简单答案归功于此处的提示https://git-scm.com/docs/gitcredentials
将克隆存储库的credential.username
属性设置为我想要使用的用户名就可以了。
$ git config credential.username me
现在我的推动工作了!我仍然不知道肉食的来源。
或者,修改.git/config
并在网址中更改[remote "origin"] url=
以包含username@
也可以。
[remote "origin"]
url = https://me@github.com/Me/me.github.io.git
答案 2 :(得分:0)
我有完全相同的问题,但是在Windows OS / 10中。要解决这个问题,我需要去Credential Manager并删除旧用户的所有凭据。
当我在Git Bash上运行命令时:
git push origin master
我有一个屏幕询问我的GitHub凭据。填写登录/密码后,它就可以了。