【前言】當你看到這篇文章時,很高興,你不用再去各大網站再去搜索這個問題的解決方案了,因爲這篇文章可以幫你徹底解決問題。請耐心地閱讀完。
本文假設了兩個用戶 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,操作很簡單:
- 打開 控制面板–>用戶–>證書管理–>系統證書
- 展開 git:https://github.com 並刪除之。
好了,問題解決,現在去Android Studio 重新push,要求你輸入userA的郵箱和密碼,輸入後就可以成功提交了。
- 最後查看重新生成了一個證書,並且未指定用戶。