解决 github push failed (remote: Permission to userA/repo.git denied to userB.)

【前言】当你看到这篇文章时,很高兴,你不用再去各大网站再去搜索这个问题的解决方案了,因为这篇文章可以帮你彻底解决问题。请耐心地阅读完

本文假设了两个用户 userA 和 userB ,userA的github项目名为 repo

当你在使用Android Studio push项目的时候,你遇到了这个问题:

Push failed: Failed with error: fatal: unable to access 'https://github.com/userA/repo.git/': The requested URL returned error: 403
  • 1

报了403,说明访问被拒绝。 
切换到终端(Terminal),使用命令 git push -u origin master 后,错误就更明显了:

remote: Permission to userA/repo.git denied to userB.
fatal: unable to access 'https://github.com/userA/repo.git/': The requested URL returned error: 403
  • 1
  • 2

意思很明白,userB没有权限对userA的repo进行push更改。 
这时你已经使用了如下命令去配置全局用户:

git config --global user.name userA
git config --global user.email [email protected]
  • 1
  • 2

并且很明确当前用户已经是userA,但还是说userB没权限。。

什么原因? 
由于该电脑使用git bash配过SSH,系统已经将指向github.com的用户设置为了userB,每次push操作的时候,都将读取到userB的用户信息,类似于记住密码

如何解决? 
1、对userA生成SSH公钥,添加到userB的github后台; 
2、将userB添加为userA项目的contributer; 
3、移除计算机中的userB。

对于1和2,相信很多人不想这么做,因为一旦使用了SSH,以后的所有clone、pull、push等操作都将使用SSH传输,对以往使用过https传输的项目也得重新更改传输方式,这样会浪费一些时间。

现在详细讲下3,操作很简单:

  • 打开 控制面板–>用户–>证书管理–>系统证书

系统证书

删除记忆的证书

好了,问题解决,现在去Android Studio 重新push,要求你输入userA邮箱密码,输入后就可以成功提交了。

  • 最后查看重新生成了一个证书,并且未指定用户。

未指定用户

猜你喜欢

转载自blog.csdn.net/weixin_42158115/article/details/81291581
今日推荐