@macoshita

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

やりたいこと

  • [x] 会社の GitLab に push するユーザーと、GitHub に push するユーザーを分けたい
  • [x] .gitconfig は会社PCと私物とで同じものを使いたい
  • [x] .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 のバージョンが極端に古いとか無い限りは動くはず。