每次進行将本地代碼送出到遠端的時候總會要求輸入賬号和密碼: git push origin master
而且會彈出以下界面:

我輸入賬号和密碼,明明是對的,卻提示登陸失敗: Logon failed, use ctrl+c to cancel basic credential prompt.
會彈出這個登陸框:是因為是執行過: git config --global credential.helper manager 這個指令。
你可以通過: git config --list來檢視:
1、使用 git config --system --unset credential.helper,或者 git config --global --unset credential.helper
我在git base上執行完這個,這個登陸框就不彈出來了。
如果還是不行,你就要再看下上述的credential.helper=manager是不是還是存在,如果還是存在,你可能設定到全局了,那麼執行:
git config --global --unset credential.helper。總之,隻要是還存在的話,就要想辦法将它去掉。
解決了登陸框彈出的問題,接下來解決每次都要輸入密碼的問題:執行 git config --global credential.helper store (這個指令執行後,會要求第一次輸入密碼,然後賬号和密碼會被緩存到.git-credentials檔案中,後續就不用再輸入賬号密碼了)
繼續檢視: git config --list
發現:manager那個也已經不存在了,變成了store,你檢視下你的使用者目錄下是不是有個.git-credentials檔案,同時存了你的賬号和密碼。
檢視發現确實生成了相應的檔案,存了賬号和密碼
$ cat ~/.git-credentials
https://26237638443%40qq.com:123123%[email protected]
如果出現下面這種錯誤:你可以把~/.git-credentials這個檔案删除掉,重新輸入一次密碼就行了。
$ git push origin master
remote: Invalid username or password.fatal: Authentication failed for 'https://github.com/shamogulang/git-learn.git/'
2、另外一種方式就是放棄使用http協定,使用ssh協定
其實我們在github上面配置的ssh-keygen的public key,是要求走ssh協定的,如果你本地的代碼跟github是通過http協定關聯的話,那麼這個key就用不上了,你得每次都輸入賬号和密碼,或者設定緩存賬号和密碼的方式。
檢視你本地拉取得代碼使用的協定:git remote -v
很明顯我本地這個是http協定。遇到這種情況,你可以轉成走ssh協定,那麼當初github上配置的ssh-keygen的public就能起作用了
你可以重新複制ssh的連結來拉取:[email protected] 這種形式的clone連結,将代碼再次clone下來。然後将http項目中的修改複制過來,不過這個改動大的話,會比較麻煩。如果麻煩的話走上述的賬号密碼緩存方式也可以