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