リポジトリごとに user.name と user.email を変更する
会社で Github Enterprise を使っているので、github.com の方の user.name
と user.email
でコミットしてしまわないようにリポジトリごとに設定を変更できるようにした。
gitconfig にあった user.name
と user.email
をけして、useConfigOnly
を true
にした。
こうすることで、リポジトリごとに user.name
と user.email
を設定しないと *** Please tell me who you are.
などといわれてコミットに失敗するようになり、誤ったユーザでのコミットを防げる。
変更前
[user] name = ganmacs email = ganmacs@gmail.com
変更後
[user] useConfigOnly = true
あとは、シェルに以下のような関数を定義しておけば良さそう。
function company() { git config user.name "namae" echo "Set user.name as $(git config --get user.name)" git config user.email "foo@bar.com" echo "Set user.email as $(git config --get user.email)" } function private() { git config user.name "ganmacs" echo "Set user.name as $(git config --get user.name)" git config user.email "ganmacs@gmail.com" echo "Set user.email as $(git config --get user.email)" }
その他
pre-commit hook などでディレクトリごとに自動で設定する方法も考えたが、大げさだなと思ってこの方法に落ち着けた。 もっといい方法があれば教えて欲しい。