每次進(jìn)行將本地代碼提交到遠(yuǎn)程的時(shí)候總會(huì)要求輸入賬號(hào)和密碼:?git push origin master
而且會(huì)彈出以下界面:
我輸入賬號(hào)和密碼委可,明明是對(duì)的毒返,卻提示登陸失斪饽弧:?Logon failed, use ctrl+c to cancel basic credential prompt.
會(huì)彈出這個(gè)登陸框:是因?yàn)槭菆?zhí)行過:?git config --global credential.helper manager 這個(gè)指令。
你可以通過: git config --list來查看:
1饿悬、使用?git config --system --unset credential.helper令蛉,或者? ?git config --global?--unset credential.helper
我在git base上執(zhí)行完這個(gè)聚霜,這個(gè)登陸框就不彈出來了狡恬。
如果還是不行,你就要再看下上述的credential.helper=manager是不是還是存在蝎宇,如果還是存在弟劲,你可能設(shè)置到全局了,那么執(zhí)行:
git config --global?--unset credential.helper姥芥⊥闷颍總之,只要是還存在的話凉唐,就要想辦法將它去掉庸追。
解決了登陸框彈出的問題,接下來解決每次都要輸入密碼的問題:執(zhí)行 git config --global credential.helper store? (這個(gè)指令執(zhí)行后台囱,會(huì)要求第一次輸入密碼淡溯,然后賬號(hào)和密碼會(huì)被緩存到.git-credentials文件中,后續(xù)就不用再輸入賬號(hào)密碼了)
繼續(xù)查看: git config --list
發(fā)現(xiàn):manager那個(gè)也已經(jīng)不存在了簿训,變成了store咱娶,你查看下你的用戶目錄下是不是有個(gè).git-credentials文件,同時(shí)存了你的賬號(hào)和密碼强品。
查看發(fā)現(xiàn)確實(shí)生成了相應(yīng)的文件膘侮,存了賬號(hào)和密碼
$ cat ~/.git-credentials
https://26237638443%40qq.com:123123%2a@github.com
如果出現(xiàn)下面這種錯(cuò)誤:你可以把~/.git-credentials這個(gè)文件刪除掉,重新輸入一次密碼就行了的榛。
$ git push origin master
remote: Invalid username or password.fatal: Authentication failed for 'https://github.com/shamogulang/git-learn.git/'
2琼了、另外一種方式就是放棄使用http協(xié)議,使用ssh協(xié)議
其實(shí)我們?cè)趃ithub上面配置的ssh-keygen的public key,是要求走ssh協(xié)議的夫晌,如果你本地的代碼跟github是通過http協(xié)議關(guān)聯(lián)的話表伦,那么這個(gè)key就用不上了谦去,你得每次都輸入賬號(hào)和密碼,或者設(shè)置緩存賬號(hào)和密碼的方式蹦哼。
查看你本地拉取得代碼使用的協(xié)議:git remote -v?
很明顯我本地這個(gè)是http協(xié)議鳄哭。遇到這種情況,你可以轉(zhuǎn)成走ssh協(xié)議纲熏,那么當(dāng)初github上配置的ssh-keygen的public就能起作用了
你可以重新復(fù)制ssh的鏈接來拉茸鼻稹:git@xxx.learn-note.git 這種形式的clone鏈接,將代碼再次clone下來局劲。然后將http項(xiàng)目中的修改復(fù)制過來勺拣,不過這個(gè)改動(dòng)大的話,會(huì)比較麻煩鱼填。如果麻煩的話走上述的賬號(hào)密碼緩存方式也可以