本文假设了两个用户 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。