個人日常編寫點小玩具,code 的版本控制一般託管於GitHub,但是公司內部使用 GitLb 來進行程式碼版本控制,這樣為了能夠在同一臺 MacBook(自帶,公司有補貼)日常區分出兩個賬戶,透過翻閱資料做了如下配置。
操作環境
-
MacBook
-
Git(git version 2.39.5)
-
命令列終端
SSH金鑰生成
在終端,使用個人郵箱和公司郵箱分別生成 SSH key
:
#建立公司的SSH-Key
ssh-keygen -t rsa -C "you@yourcompany.com" -f ~/.ssh/id_rsa
#建立個人的SSH-Key
ssh-keygen -t rsa -C "schacon@mylaptop.local" -f ~/.ssh/id_rsa_personal
同時會生成對應的公鑰,以.pub
為檔案字尾,這個公鑰是用來上傳到 Git 託管伺服器的,用來進行 SSH 通訊。生成的金鑰檔案如下圖所示:
基於 SSH config 的隔離
有了上面的金鑰,如何進行賬戶的隔離呢?很簡單,透過指定金鑰。在~/.ssh
下建立 config 檔案,如果沒有的話:
# 建立配置檔案
touch config
然後在 SSH config 檔案中分別指定賬戶:
# 個人
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_personal
# 公司
Host gitlb.yourcompany.com # 替換為你的公司託管伺服器
HostName gitlb.yourcompany.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
區分賬戶
由於公司的專案遠遠多於個人專案,我一般把公司賬戶作為 Git 的全域性使用賬戶(當然你也可以正好相反):
# 全域性配置預設使用公司賬戶
git config --global user.name "you" && git config --global user.email "you@yourcompany.com"
然後個人專案目錄下每次執行(如果你有更好的方法歡迎評論區指教)
# 個人專案配置,每次新建立專案都需要執行
git config --local user.name "schacon" && git config --local user.email "schacon@mylaptop.local"
這樣,把公鑰上傳到遠端 Git 託管伺服器後,就可以分別在公司和個人專案裡使用對應的 Git 賬戶了。
以上。
Reference
-
Github-關於 SSH 金鑰
-
Pro Git 中文版
如果這篇文字對你有幫助,你又恰好想握手言謝,那麼可以請我喝杯咖啡
: