问题解决:github push failed (remote: Permission to userA/repo.git denied to userB.)
本文假设了两个用户 userA 和 userB ,userA的github项目名为 test 当你在使用git push项目的时候,你遇到了这个问题:
MacBook-Pro:BSBacktraceLogger $ git push -u origin master
remote: Permission to userA/test.git denied to userB.
fatal: unable to access 'https://github.com/userA/test.git/': The requested URL returned error: 403
报了403,说明访问被拒绝。 意思很明白,userB没有权限对userA的test进行push更改。 但是这时你已经使用了如下命令去配置全局用户。
git config --global user.name userA
git config --global user.email userA@Email.com
并且很明确当前用户已经是userA,但还是说userB没权限。
原因
由于该电脑使用git bash配过SSH,系统已经将指向github.com的用户设置为了userB,每次push操作的时候,都将读取到userB的用户信息,类似于记住密码
。
解决方法
在mac操作系统中,出现这个问题是通过OSX密钥链中的凭据来进行作为push的凭据的。这时我们可以到 钥匙串访问 -》 删除我们的userB的凭据。具体操作如下:
-
在 Finder 中,搜索 Keychain Access 应用程序。
-
在 Keychain Access 中,搜索 github.com。
-
相应地编辑或删除该条目。
-
再次尝试 输入账号密码后成功push。
参考资料
转载自:https://juejin.cn/post/6844904095988334605