Git-如何區分使用個人賬戶和公司賬戶

Asann發表於2024-09-26

個人日常編寫點小玩具,code 的版本控制一般託管於GitHub,但是公司內部使用 GitLb 來進行程式碼版本控制,這樣為了能夠在同一臺 MacBook(自帶,公司有補貼)日常區分出兩個賬戶,透過翻閱資料做了如下配置。

操作環境

  • MacBook
    Git-如何區分使用個人賬戶和公司賬戶

  • 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金鑰

基於 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 中文版


如果這篇文字對你有幫助,你又恰好想握手言謝,那麼可以請我喝杯咖啡

Git-如何區分使用個人賬戶和公司賬戶 Git-如何區分使用個人賬戶和公司賬戶

相關文章