【Git】同一マシンでリポジトリ毎にユーザを使い分ける【Config】
はじめに
一台のマシンで複数の Git ユーザを使い分けるための設定をまとめました。
業務用と個人用でユーザを分けるなど、複数のリポジトリを異なるユーザで使い分ける際に、誤って違うユーザで誤コミットしてしまった経験はありませんか?
そんなちょっと恥ずかしい思いをしないための設定です。
TL;DR
- global 設定の
user.name
とuser.email
をunset
する - global 設定の
user.useConfigOnly
をtrue
にする - 各リポジトリの local 設定で
user.name
とuser.email
を設定する
Git の設定ファイルについて
設定ファイルの場所
場所 | スコープ | git config オプション |
---|---|---|
/etc/gitconfig か C:\Program Files\Git\etc\gitconfig |
システム上の全てのユーザーと全てのリポジトリ | git config --system |
~/.gitconfig か ~/.config/git/config か C:\Users\$USER |
特定のユーザー | git config --global |
[repository]/.git/config |
特定の単一リポジトリ | git config --local |
設定ファイルの優先度
スコープが小さいほど(表の下にいくほど)優先度が高くなります。
つまり、 global の設定よりも local の設定(リポジトリ毎の設定)が優先されます。
Git ユーザの使い分け設定
global 設定
user.name と user.email を削除する
git config --global --unset user.name git config --global --unset user.email
ここで設定した user.name
と user.email
は、リポジトリの local 設定に user.name
や user.email
が存在しない場合に利用されます。
useConfigOnly を true にする
git config --global user.useConfigOnly true
user.useConfigOnly
を true
にすると、 global 設定や local 設定に明示的に user.name
と user.email
が設定されていない場合、コミット時に警告が表示され、処理が中断されます。
公式サイトのドキュメントは コチラ を参照。
Git - git-config Documentation
注意
※ user.useConfigOnly
は、Git バージョン 2.8.0 以降から設定可能になります。
各リポジトリの local 設定
user.name と user.email を設定する
git config --local user.name [Name] git config --local user.email [Mail]
各リポジトリで使用する user.name
と user.email
を設定します。
ここで設定した user.name
と user.email
がコミット履歴に表示されることになります。
まとめ
要点をまとめると、 global 設定の useConfigOnly
を true
にした上で user.name
と user.email
を削除し、各リポジトリの local 設定に user.name
と user.email
を設定します。
こうすることで、各リポジトリの user.name
と user.email
が未設定の場合はコミットをすることができなくなり、万が一 local 設定にユーザ情報を設定し忘れても、 global 設定のユーザ情報での誤コミットを防ぐことができます。
当たり前ですが、各リポジトリの local 設定の誤りを防ぐことはできませんので、ユーザ情報の設定には細心の注意を払いましょう!