人生シーケンスブレイク

人生を楽してクリアしたい。

特定ディレクトリ配下のみgitコマンドに紐づくGitHubアカウントを切り替える

特定ディレクトリ配下のgitリポジトリのみ別のconfig設定を適用する - 人生シーケンスブレイク の派生版。
個人でも会社でもEnterpriseでないGItHubを利用している場合の方法。

やりたいこと

  • GitHub利用のメインは個人アカウントにしたい
  • 会社用リポジトリをいじる際だけ社用アカウントに切り替えたい
    • git cloneコマンドで新規にプライベートリポジトリを取得する場合にも、権限エラー無く取得したい

ディレクトリイメージ

以下のようなディレクトリ構成を例とする。

~/git/
├── 個人アカウントのリポジトリ1
├── 個人アカウントのリポジトリ2
├── ...
└── office/ # このディレクトリ以下では会社用のgit configを適用したい
    ├── 会社用アカウントのリポジトリ1 
    ├── 会社用アカウントのリポジトリ2 
    └── ...

手順

一部 特定ディレクトリ配下のgitリポジトリのみ別のconfig設定を適用する - 人生シーケンスブレイク と重複。

グローバルの ~/.gitconfig に、特定ディレクトリでは追加の.gitconfigを参照するように以下を追記

該当ディレクトリ配下では、追加で独自の .gitconfig も読み込むようにする。

[includeIf "gitdir:~/git/office/"]
  path = ~/git/office/.gitconfig

会社用のユーザー名やssh証明書などの設定を会社用の.gitconfig ファイルに記述する

このケースでは、 ~/git/office/.gitconfig に記述する。

[user]
    name = name_for_office
    email = name@example.com
[core]
    sshCommand = "ssh -i ~/.ssh/id_rsa_for_office -F /dev/null"

使う

~/git/office/ 以下では、~/git/office/.gitconfig の設定もインクルードされ、

リポジトリ単位で個別に設定する必要がなくなるので非常に便利。

参考