· 初學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
·
·