天天看點

Git:單台電腦同時配置多個git賬号

問題說明

現在雲端倉庫很多,有開源中國的 gitee.com 、微軟的 github.com 、還有 gitlab.com 和 bitbucket.org 等等,當我們想同一台電腦連結多個雲端倉庫時,就需要設定不同的使用者、郵箱生成不同的密鑰進行連結。

解決方案

1. 下載下傳安裝Git

我的電腦是Window10 系統,是以下載下傳的Windows版

git官網下載下傳git,連結:​​https://git-scm.com/​​

下載下傳完之後,滑鼠右鍵會看到Git Bash

Git:單台電腦同時配置多個git賬号

2. 生成公私鑰對

假設我有github.com 、gitlab.com 和 bitbucket.org三個雲端的賬号,各自的注冊郵箱和使用者名不同。

建議:linux 或 mac 使用者推薦在 ​

​~/.ssh​

​ 路徑下運作指令行,Windows使用者推薦在“ ​

​C:\Users\使用者名\.ssh​

​ ”目錄下運作指令行

## 說明: 
## -t rsa 表示加密方式  
## -C 表示注冊不同雲端倉庫時所用的郵箱 
## -f 表示自定義生成秘鑰的名稱
#--------------------------------------
# 生成 github.com 公私鑰對
ssh-keygen -t rsa -C "[email protected]" -f github
# 生成 gitlab.com 公私鑰對
ssh-keygen -t rsa -C "[email protected]" -f gitlab
# 生成 bitbucket.org 公私鑰對
ssh-keygen -t rsa -C "[email protected]" -f bitbucket      

生成的檔案就在目前運作指令的檔案夾内

Git:單台電腦同時配置多個git賬号

3. 登入雲端倉庫配置公鑰

這裡拿github舉例。

登入github後,點選右上角頭像,選擇Settings

Git:單台電腦同時配置多個git賬号

彈出頁面,選擇SSH and GPG keys

Git:單台電腦同時配置多個git賬号

之後點選 New SSH key 建立SSH連結鑰匙

Git:單台電腦同時配置多個git賬号

輸入标題,将生成的github的公鑰(github.pub)檔案内的内容拷貝至 Key,點選Add SSH key

Git:單台電腦同時配置多個git賬号

4. 建立config檔案

在剛剛生成公私鑰對的檔案夾内,建立config檔案

Git:單台電腦同時配置多個git賬号

内容如下

# one([email protected])
Host github
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github
User one
    
# two([email protected])
Host gitlab
HostName gitlab.java.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab
User two

# three(three.gmail.com)
Host bitbucket
HostName bitbucket.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/bitbucket
User three

# 這是gitee的連結方式
#Host gitee
#HostName gitee.com
#PreferredAuthentications publickey
#IdentityFile ~/.ssh/gitee
#User four      

配置詳解 

# 這裡是自定義的host簡稱,以後連接配接遠端伺服器就可以用指令ssh myhost
Host
# 主機名可用ip也可以是域名(如:github.com或者bitbucket.org)
HostName
# 伺服器open-ssh端口(預設:22,預設時一般不寫此行)
Port
# 配置登入時用什麼權限認證
# 可設為(publickey, password publickey, keyboard-interactive 等)
PreferredAuthentications
# 證書檔案路徑(如~/.ssh/id_rsa_*)
IdentityFile
# 雲端倉庫登入使用者名
User      

5. 遠端測試連結

# 測試連結是否成功, 這裡的github、gitlab是config檔案中設定的Host
ssh -T git@github
ssh -T git@gitlab      

運作指令後如果出現“​

​Hi xxxx! You’ve successfully authenticated, but GitHub does not provide shell access.​

​”,其中“​

​xxxx​

​”為你配置的 User 名字,這時恭喜你,配置成功了~

6. 下載下傳github項目

Git:單台電腦同時配置多個git賬号
# 單個雲端倉庫時, 運作 git clone 你的項目位址
git clone [email protected]: 我的使用者名/Radish-Tools.git

# 多個雲端倉庫時, 需要修改你的項目位址的@對象
# 這裡的github是config檔案中的Host
git clone git@github: 我的使用者名/Radish-Tools.git
# 這裡的gitlab是config檔案中的Host
git clone git@gitlab: 我的使用者名/Radish-Tools.git      

7. 配置局部使用者名與郵箱

取消全局使用者名與郵箱設定

# 取消全局 使用者名/郵箱 配置
git config --global --unset user.name
git config --global --unset user.email      

進入每個項目的檔案夾,運作Git Bash,設定局部使用者名與郵箱

# 單獨為每個repo設定 使用者名/郵箱
git config user.name "one_name" ; git config user.email "[email protected]"
git config user.name "two_name" ; git config user.email "[email protected]"      

 上述都成功後,會發現GitHub中的SSH鑰匙會由灰變綠

Git:單台電腦同時配置多個git賬号