git配置免密登錄
在開始之前,我們首先來明確一下需要每次輸入用戶名和密碼的場景:
第一,必須是使用https方式下載的代碼在操作時才可能需要輸入用戶名密碼。
第二,在滿足第一點的基礎上,未配置credential.helper。可以用如下命令(如未特別說明,所有命令均默認在Git Bash工具下執行)檢查credential.helper的當前配置:
git config -l|grep credential.helper
如果未配置的話結果應該為空:
下面檢查一下當前是否任意的git操作都需要輸入用戶名密碼:
clone代碼:
pull代碼:
push代碼:
沒錯,每次都要輸入用戶名密碼,就一個字:煩。
接下來介紹一下兩個配置方案:
- 切換成git方式,傳送門: git ssh key配置
-
配置credential.helper:
首先簡單介紹一下credential.helper這個配置項的含義:這個配置項允許用戶自行指定git所使用的憑據管理工具。
簡單粗暴的辦法就是直接配置credential.helper的值為manager(注意:當你需要在同一台機器上使用多個git賬號這么搞就不行了,因為2個賬號必定使用的不同的憑據):git config credential.helper manager
再次嘗試pull代碼的時候會彈出窗口要求輸入用戶名密碼(只需要輸入這一次就ok了):
最后再次pull代碼檢查一下是否已經可以不用輸入用戶名密碼:
可以看到已經不再需要輸入用戶名密碼了。就windows而言,這個憑據放在windows的憑據管理器中:
整個過程可以這樣描述:當配置credential.helper后,git在需要用戶名密碼時會首先向指定的憑據管理器查找憑據,如果憑據不存在(對應第一次pull),則彈窗提示用戶輸入用戶名密碼,然后憑據管理器會記錄這個憑據;如果憑據存在(對應第二次pull),則直接使用該憑據進行對應的git動作。
另外補充一點,筆者使用的git安裝工具(Git-2.15.1.2-64-bit)在安裝時會默認幫我們把credential.helper設置成manager,除非我們在安裝時下面這個默認勾選的配置被手動取消了: