🔨

リモート接続時のエイリアス設定の自動化

2024/11/30に公開

困ったこと

前回の記事では無事GitHubアカウントをWorkとPrivateで切り分ける設定を行うことができました。
しかし、次のような問題が発生しました。

GitHubからリポジトリをクローンする際、デフォルトのURLは次のようになります:
git@github.com:username/repository.git
となっています。
一方で、私がWork用アカウントで接続するためには、以下のURLにする必要があります:
git@github-work:username/repository.git

これを毎回手動で変更していては不便です。
そこで、クローン時に自動で正しいリンクに変換してくれるように設定を変更します。

手順

まず、現在の設定に以下の変更を加えます。

  1. ~/.gitconfig に次を追加:
[includeIf "gitdir:~/work/"] 
    path = ~/.gitconfig_work

この設定は、~/work/ 配下のリポジトリに対して、特定のGit設定(ここでは~/.gitconfig_work)を適用するためのものです。

  1. ~/.gitconfig_work を作成:
[user]
    name = work.name // Work用
    email = your_work_email@example.com
  1. リモートURL変換の設定を追加:
    メインの ~/.gitconfig に以下を追加します。
[url "git@github-work:"]
    insteadOf = git@github.com:

いざ実証

Workディレクトリに移動してリポジトリをクローンします。

cd ~/work
git clone "git@github.com:username/repository.git"

クローンが成功したら、リモートURLが正しく設定されているか確認しましょう

cd repository
git remote -v

以下のようにgit@github-work:が表示されれば成功です。

origin  git@github-work:username/repository.git (fetch)
origin  git@github-work:username/repository.git (push)

Discussion