1.使用ssh協議
- step 1: 生成公鑰
ssh-keygen -t rsa -C "[email protected]"
# Generating public/private rsa key pair...
# 三次回車即可生成 ssh key
- step 2: 查看已生成的公鑰
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
- step3: 複製已生成的公鑰添加到git服務器
- step4:
使用ssh協議clone遠程倉庫
or
如果已經用https協議clone到本地了,那麼就重新設置遠程倉庫
git remote set-url origin [email protected]:xxx/xxx.git
2.設置git配置
對於 HTTP 協議 git 擁有一個憑證系統來處理這個事情
-
默認所有都不緩存。 每一次連接都會詢問你的用戶名和密碼。
-
"cache" 模式會將憑證存放在內存中一段時間。 密碼永遠不會被存儲在磁盤中,並且在15分鐘後從內存中清除。
-
"store" 模式會將憑證用明文的形式存放在磁盤中,並且永不過期。 這意味着除非你修改了你在 Git 服務器上的密碼,否則你永遠不需要再次輸入你的憑證信息。 這種方式的缺點是你的密碼是用明文的方式存放在你的 home 目錄下。
-
如果你使用的是 Mac,Git 還有一種 “osxkeychain” 模式,它會將憑證緩存到你係統用戶的鑰匙串中。 這種方式將憑證存放在磁盤中,並且永不過期,但是是被加密的,這種加密方式與存放 HTTPS 憑證以及 Safari 的自動填寫是相同的。
-
如果你使用的是 Windows,你可以安裝一個叫做 “winstore” 的輔助工具。 這和上面說的 “osxkeychain” 十分類似,但是是使用 Windows Credential Store 來控制敏感信息。 可以在 https://gitcredentialstore.codeplex.com下載。
你可以設置 Git 的配置來選擇上述的一種方式
git config --global credential.helper cache
部分輔助工具有一些選項。 “store” 模式可以接受一個 --file <path> 參數,可以自定義存放密碼的文件路徑(默認是~/.git-credentials
)。 “cache” 模式有 --timeout <seconds> 參數,可以設置後臺進程的存活時間(默認是 “900”,也就是 15 分鐘)。 下面是一個配置 “store” 模式自定義路徑的例子:
git config --global credential.helper store --file ~/.my-credentials
Git 甚至允許你配置多個輔助工具。 當查找特定服務器的憑證時,Git 會按順序查詢,並且在找到第一個回答時停止查詢。 當保存憑證時,Git 會將用戶名和密碼發送給 所有 配置列表中的輔助工具,它們會按自己的方式處理用戶名和密碼。 如果你在閃存上有一個憑證文件,但又希望在該閃存被拔出的情況下使用內存緩存來保存用戶名密碼,.gitconfig 配置文件如下:
[credential]
helper = store --file /mnt/thumbdrive/.git-credentials
helper = cache --timeout 30000
3.修改git配置文件
在用戶文件夾下找到 .gitconfig
文件,用編輯器或者vim打開,如果之前有配置過用戶名和密碼就會在裏面看到
[user]
name = xxx
email = [email protected]
在後面追加如下配置並保存
[credential]
helper=store
下次執行git push
再次輸入用戶名之後,git就會記住用戶名密碼並在上述目錄下創建.git-credentials文件,記錄的就是輸入的用戶名密碼。
作者:天魂_TH
鏈接:https://www.jianshu.com/p/bcfb6a0d5c7a
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。