gitconfig の includeIf を使って git のユーザーを切り替える
やりたいこと
- 会社の GitLab に push するユーザーと、GitHub に push するユーザーを分けたい
 - .gitconfig は会社 PC と私物とで同じものを使いたい
 - .gitconfig は github で公開した状態にしたいので、会社情報が含まれないようにしたい
 
環境
↑ をやろうと思うとディレクトリをスパッと分けてくれる GHQ が都合良かったので導入。
GHQ のデフォルト設定は、github からクローンしたら ~/ghq/github.com に、会社の GitLab からクローンしたら ~/ghq/{会社の GitLab の URL} に置かれるようになっている。
以下の方法は 会社のリポジトリ群と、個人のリポジトリ群が、それぞれ別ディレクトリにまとまっているいる場合 に適用可能。
やったこと
.gitconfig にこういうものを書く。
includeif の仕様はこちら。要は特定のディレクトリ以下にいるときに特定の config を include できる。
[include]
	path = .gitconfig.default
[includeif "gitdir:~/ghq/github.com"]
	path = .gitconfig.github
同じディレクトリにこういうものを置く。 以下のファイルはコミットはしない。
# .gitconfig.default
[user]
	name = 会社PCなら会社のアカウント、自宅PCなら .gitconfig.github と同じもの
	email = こちらも同様
# .gitconfig.github
[user]
	name = github用
	email = github用
git のバージョンが極端に古いとか無い限りは動くはず。