如何配置多個 git ssh keys 並依照專案動態切換 git config
- Leo
- 技術宅 ( tech geek)
- 2024年2月23日
目錄
我有時候會在公司的電腦開發自己的專案,也會在家裡的電腦開發公司的專案,這時候就會遇到一個問題,就是公司的 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
的設定。