これまでの方法
gitで複数のユーザを切り替えるのにgit config --localを使って設定していました。
この方法は、切り替え忘れはないのですが、新規にリポジトリをcloneする毎にgit configを実行する必要がありました。
includeIfを使う方法
ghqと~/.gitconfigのincludeIfを使えば、初期設定以外何もしなくてもリポジトリ毎にuser.emailやuser.mailを切り替えて使うことができます。
ghqを使うと~/.ghq/gitサーバ名/ユーザ名/リポジトリ名にcloneされます。
includeIfを使って~/.ghq/gitサーバ名/単位で、user.emailやuser.nameを設定します。
例えば、下記のように~/.gitconfigに下記のように設定することで~/.ghq/bitbucket.org/mycompany/以下にcloneされたリポジトリは、~/.gitconfig-mycompanyの設定をイングルードしてくれます。
git config --globalでメインで使うメールアドレスを設定し、特定のディレクトリだけは、別のメールアドレスを設定することが可能になります。
$ tail -2 ~/.gitconfig [includeIf "gitdir:~/.ghq/bitbucket.org/mycompany/"] path =~/.gitconfig-mycompany $ cat ~/.gitconfig-mycompany [user] email = me@mycompany