如何配置多個 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

相關文章

Visual Studio Code C++ 教學:從安裝到 Hello World 完整指南

Visual Studio Code C++ 教學:從安裝到 Hello World 完整指南

今天我要帶大家探索一下如何使用 Visual Studio Code 進行 C++ 的開發。對於許多初學者來說,設定開發環境可能是一個相對複雜的過程,但別擔心,我將會帶領大家一步一步

閱讀更多
如何使用 GitHub Actions 自動建立並推送 Docker Image

如何使用 GitHub Actions 自動建立並推送 Docker Image

在我們先前的文章 中,我們學習了如何使用 buildx 來建立能在多平台運行的 Docker Image。然而,這種方法仍需要手動操作。為了讓我們能在 Hugo 有新版本更新時自動

閱讀更多
如何快速建置 Node.js 專案並使用 TypeScript 與 Visual Studio Code 進行開發

如何快速建置 Node.js 專案並使用 TypeScript 與 Visual Studio Code 進行開發

安裝 .NET CLI on Windows with Chocolatey choco install dotnetcore-sdk -y on macOS with Homebrew brew install dotnet-sdk on Ubuntu sudo apt-get install dotnet-sdk -y 使用 Will 保哥 的專案範本建立一個新的 TypeScript 專案 安裝專案範本 dotnet new --install Duotify.Templates.DotNetNew 建立新的 TypeScript 專案 mkdir <project-folder> && cd <project-folder> dotnet new tsnode

閱讀更多