特定ディレクトリ配下の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
の設定もインクルードされ、
リポジトリ単位で個別に設定する必要がなくなるので非常に便利。
参考
- Connecting to GitHub with SSH - User Documentation
- git clone 時に秘密鍵を指定する - Qiita
- この時のGIT_SSH_COMMANDを.gitconfigの参考にさせていただきました。
- Multiple SSH keys for different github accounts · GitHub
- プライベートリポジトリの git clone ができず断念。
- git-config#git-config-coresshCommand
- SSH (1)
ssh -F /dev/null
の挙動が知りたかった。

EIZO FlexScan 27.0インチ ディスプレイモニター (4K UHD/IPSパネル/ノングレア/ブラック/USB Type-C搭載/5年間保証&無輝点保証) EV2785-BK
- 出版社/メーカー: EIZO
- 発売日: 2018/01/30
- メディア: Personal Computers
- この商品を含むブログを見る