配置git push不用每次輸入用戶名和密碼,修改git配置文件,保存git賬戶密碼

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
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章