使用 Sourcetree 將代碼推送到 github 網(wǎng)站時,提示錯誤:
Pushing to https://github.com/uniapp10/snippet
remote: Invalid username or password.
因為Sourcetree只是可視化界面, 提交代碼底層依然是 git 命令,使用git繼續(xù)提交時,提示需要填寫用戶名和密碼,輸入登陸github網(wǎng)站的密碼,仍然報錯。
Username for 'https://github.com': uniapp10
Password for 'https://uniapp10@github.com':
remote: Invalid username or password.
記得以前沒有開通兩步認證時,此方法是可行的。兩步驗證功能開通后,登錄網(wǎng)站首先需要輸入登錄密碼,然后還有 Authenticator中的防護密碼。而git命令密碼輸入只有一步,除非找到讓兩個密碼合并成一個的方式才可以順利登錄。
查找資料,發(fā)現(xiàn)輸入的密碼,需要在 github 網(wǎng)站個人設置頁面生成。路徑Settings/Developer settings/Personal access tokens,生成一串類似token 的字符串。使用git push origin繼續(xù)提交,成功。
以上方式解決問題的前提是:使用https協(xié)議拉取的項目。
git命令還支持ssh協(xié)議推拉項目,需要在本地生成配對的公私鑰,然后將公鑰添加到github網(wǎng)站的個人設置中,具體流程可參考connecting-to-github-with-ssh。
對ssh簡單的理解,就是將公鑰發(fā)給服務器,以后通信時首先使用本地的私鑰進行匹配驗證,成功后就可以傳輸信息了。感興趣可參考阮老師文章ssh_remote_login。
簡單總結一下:Sourcetree 是對 git 命令的可視化顯示。如果Sourcetree出現(xiàn)問題,首先在命令行使用git嘗試,會得到更詳細的錯誤提示,根據(jù)錯誤提示,再尋求解決辦法。完~