如何配置多個 git ssh keys 並依照專案動態切換 git config

如何配置多個 git ssh keys 並依照專案動態切換 git config

目錄

我有時候會在公司的電腦開發自己的專案,也會在家裡的電腦開發公司的專案,這時候就會遇到一個問題,就是公司的 Git 用的是公司的帳號,而自己的專案用的是自己的帳號,這時候就需要配置多個 Git SSH Key 並依照專案設置不同的 Git Config。

以下示範如何在同一台電腦,配置多個 Git SSH Key 並期待若專案在 Personal 資料夾時使用自己的帳號,若專案在其他資料夾時使用公司的帳號。

產生 SSH Key

首先我們需要產生兩組 SSH Key,一組是公司的,一組是自己的。

ssh-keygen -f  $HOME/.ssh/id_rsa -N ""
ssh-keygen -f $HOME/.ssh/id_rsa_personal -N ""

配置 SSH Key

接著我們需要配置 SSH Key,這裡我們需要在 $HOME/.ssh/config 中配置。

Host github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa

Host self.github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa_personal

配置 Git Config

接著我們需要配置 Git Config,這裡我們需要在 $HOME/.gitconfig 中配置當專案在 Personal 資料夾時使用的 Git Config。 下面的配置會讓 Git 在 $HOME/Personal/ 資料夾時使用 .gitconfig-personal 的設定。

git config --global includeif.gitdir/i:$HOME/Personal/.path=.gitconfig-personal

$HOME/.gitconfig 中配置的內容如下:

[includeIf "gitdir/i:$HOME/Personal/"]
        path = .gitconfig-personal

接著我們要在跟 .gitconfig 同一層的資料夾中新增一個 .gitconfig-personal 的檔案,這個檔案就是專案在 Personal 資料夾時使用的 Git Config。

[user]
        name = <personal-user-name>
        email = <personal-user-email>

這樣未來當我們要 clone 自己的專案時,只需要使用 self.github.com 的 Host 即可,而當我們要 clone 公司的專案時,只需要使用 github.com 的 Host 即可。 並且若專案在 Personal 資料夾時,Git 會自動使用 .gitconfig-personal 的設定。

comments powered by Disqus

相關文章

[筆記] Linux Ubuntu 指令

[筆記] Linux Ubuntu 指令

檢查系統和硬件信息 uname -a # 顯示系統信息, 如 Linux ubuntu 5.4.0-1045-aws #47-Ubuntu SMP Wed Sep 22 00:59:08 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux uname -s # 顯示系統名稱, 如 Linux uname -m # 顯示系統架構, 如 x86_64 lsusb # 列出 USB 設備 lsblk # 列出

閱讀更多
Sublime Text 3/4 高階設定與快捷鍵技巧

Sublime Text 3/4 高階設定與快捷鍵技巧

Sublime Text 3/4 是一款輕巧且功能強大的文本編輯器,專為多語言程式設計打造,提供豐富的語法高亮和易於安裝的插件。其設定檔案採用 JSON 格式,便於用戶進行個性化

閱讀更多
沛瑞科技混合訊號 USB 示波器評測:入門者的最佳選擇!

沛瑞科技混合訊號 USB 示波器評測:入門者的最佳選擇!

探索沛瑞科技的混合訊號 USB 示波器 當我們談到嵌入式工程師的日常工作,與硬體信號的互動是不可或缺的部分。有時候,擁有一台專屬的設備可以使任務執行得

閱讀更多