@macoshita

gitconfig の includeIf を使って git のユーザーを切り替える

Git

やりたいこと

環境

↑ をやろうと思うとディレクトリをスパッと分けてくれる 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 のバージョンが極端に古いとか無い限りは動くはず。