window下git多賬戶管理

devman發表於2017-12-14

如何配置一個git賬戶(還沒有設定過git賬戶)

基本流程:設定git使用者名稱和郵箱–>生成SSH Key–>新增公鑰到git伺服器(github或gitlab等)

設定git使用者名稱和郵箱

git config --global user.name "使用者名稱"
git config --global user.email "郵箱"

注意git config命令的--global引數,用了這個引數,表示你這臺機器上所有的Git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的使用者名稱和Email地址

生成SSH Key

ssh-keygen -t rsa -C "郵箱"

然後一路回車,使用預設值即可,在使用者主目錄.ssh目錄下,會生成id_rsa和id_rsa.pub兩個檔案。

  • id_rsa(私鑰)
  • id_rsa.pub(公鑰)

新增公鑰到git伺服器

id_rsa.pub裡面的內容新增到SSH Key中

如何配置多個git賬戶

暫時配了兩個,多個重複以下操作就好了O(∩_∩)O哈哈~
問題情景:公司程式碼託管工具也是git然後有自己的gitlab伺服器,如果沿用上面的配置

git config --global user.name "使用者名稱"
git config --global user.email "郵箱"

務必會造成個人的git與公司的git不能同時存在,所以讓我們來看看同一臺機器多個git如何配置

假設第一次設定的是賬戶A,第二次設定的是賬戶B,以下用A,B來代稱。


基本流程:生成新的SSH Key->配置config檔案->新增公鑰到另git伺服器

生成新的SSH Key

ssh-keygen -t rsa -C "B郵箱"

注意:這次不能一直回車生成預設檔案,因為檔案同名會覆蓋,假設生成的檔名為

  • B_id_rsa(私鑰)
  • B_id_rsa.pub(公鑰)

配置config檔案

windows下新建一個txt文字,然後將名字字尾一起改成config

配置如下

# gitlab
Host git.A.com
    HostName git.A.com  //這裡填賬戶A的git網址
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa //第一次的私鑰名字(賬戶A的私鑰名字)
    User xxx //使用者名稱

# github
Host git.B.com
    HostName git.B.com //這裡填賬戶B的git網址
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/B_id_rsa //賬戶B的私鑰名字
    User xxx //使用者名稱

git配置解釋

每個賬號單獨配置一個Host,每個Host要取一個別名,每個Host主要配置HostName和IdentityFile兩個屬性即可

Host的名字可以取為自己喜歡的名字,不過這個會影響git相關命令,例如:
Host mygithub 這樣定義的話,命令如下,即git@後面緊跟的名字改為mygithub
git clone git@mygithub:PopFisher/AndroidRotateAnim.git

HostName           //這個是真實的域名地址
IdentityFile         // 這裡是id_rsa的地址
PreferredAuthentications   //配置登入時用什麼許可權認證--可設為publickey,password,publickey,keyboard-interactive等
User            // 配置使用使用者名稱

參考資料

相關文章