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 のバージョンが極端に古いとか無い限りは動くはず。