解決 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郵箱密碼,輸入後就可以成功提交了。

  • 最後查看重新生成了一個證書,並且未指定用戶。

未指定用戶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章