· 初学GitHub的朋友遇到可能会遇到一些很难找到答案的问题,这个就是一个找了3天才有点眉目的问题,如今把解决方法分享给你们,但愿初学者少走弯路。html
下面假设了两个用户 userA 和 userB ,userA的github项目名为 XXXX.gitjava
-----------------------------------------------------------------------------------------------------------------------------------------------------
针对git push的时候报错(解决上传到github报错)
Successfully created project 'XXXX' on GitHub, but initial commit failed:
remote: Permission to userA/xxxx.git denied to userB。fatal: unable to access ‘https://github.com/userA/xxxx.git/‘: The requested URL returned error: 403
----------------------------------------------------------------------------------------------------------------------------------------------------- git
当你在使用Idea、VS code 、Android Studio等开发工具 push项目的时候,若是遇到了这个问题:github
fatal: unable to access 'https://github.com/userA/XXXX.git/': The requested URL returned error: 403shell
报了403,说明访问被拒绝。
切换到终端(Terminal),使用命令 git push -u origin master 后,错误显示到下方了:bash
意思很明显,就是说userB没有权限对userA的XXXX仓库进行push更改。 app
cat ~/.gitconfig
,得知当前的用户为userB。
这时你早已经使用以下命令去配置过全局用户:工具
而且很明确当前用户已是userA,但仍是说userB没权限。
那么到底是什么缘由呢?
因为该电脑使用git bash配过SSH,系统已经将指向github.com的用户设置为了userB,每次push操做的时候,都将读取到userB的用户信息,相似于记住密码。post
三种方案:
一、对userA生成SSH公钥,添加到userB的github后台;
二、将userB添加为userA项目的contributer;
三、移除计算机中的userB。开发工具
对于1和2,相信不少人不想这么作,由于一旦使用了SSH,之后的全部clone、pull、push等操做都将使用SSH传输,对以往使用过https传输的项目也得从新更改传输方式,这样会浪费一些时间。
如今详细讲下方案3,操做很简单:
打开 控制面板–>用户帐户–>凭据管理器–>管理Windows凭据(或者在开始菜单中搜索 【凭据管理器】)
打开凭据管理器后,下拉在普通凭证,展开这条github.com相关的凭据,直接删除 或者 点编辑修改,再拉取或者提交的时候会让咱们从新输入用户名密码 。
最后查看从新生成了一个证书,而且未指定用户。
---------------------
参考文献:
1. I-T枭 https://blog.csdn.net/hahahhahahahha123456/article/details/81104977
2. 神话2009 https://blog.csdn.net/klxh2009/article/details/76019742
·
·