Git 設定の 3 つのスコープ
git config
による設定のスコープは 3 種類あり、スコープが狭くなるほど参照時の優先度は高くなります。
下記はそれぞれのスコープでの設定方法を、優先度の高い順に示しています。
カッコの中のファイル名は、コマンドを実行したときの設定値の保存先です。
$ git config --local ... # 各リポジトリごとの設定 (<repo>/.git/config)(優先度:高)
$ git config --global ... # 現在のユーザの共通設定 (~/.gitconfig)
$ git config --system ... # システム内の共通設定 (/etc/gitconfig など)(優先度:低)
例えば、global 設定で user.name
が Ichiro
になっていても、local 設定が Jiro
になっていれば、Jiro
の方が優先的に使用されます。
プロジェクト(リポジトリ)ごとに固有の設定をする場合は、local なスコープで設定を行うとよいでしょう。
この場合、プロジェクトの作業ツリーのルートにある .git/config
ファイルに設定が保存されます。
例えば、次のようにして local 設定の user.name
と user.email
を変更することができます。
$ git config --local user.name maku77
$ git config --local user.email maku77@example.com
上記コマンドを実行した後で、<リポジトリ>/.git/config
ファイルを開くと次のように設定情報が保存されていることが分かります。
それぞれの設定ファイルをコマンドで開く (git config --edit
)
各スコープの設定ファイルは、git config --edit
コマンドで開くことができます。
$ git config --edit # リポジトリの設定ファイルを開く(local 設定)
$ git config --edit --local # (同上)
$ git config --edit --global # ユーザーの設定ファイルを開く(global 設定)
$ git config --edit --system # システムの設定ファイルを開く(system 設定)
使用するエディタは、core.editor
設定や、GIT_EDITOR
環境変数などで指定できます。
Windows の場合のホームディレクトリ (USERPROFILE
, HOME
)
global スコープの設定は、ユーザのホームディレクトリの .gitconfig
ファイルに設定値が保存されますが、Windows の場合のホームディレクトリは、デフォルトで USERPROFILE
環境変数で取得できるディレクトリ(通常は C:\Users\<ユーザー名>
)が使用されます。
C:\> echo %USERPROFILE%
C:\Users\maku
例えば、上記の場合は C:\Users\maku
が Git のホームディレクトリとして使用されるので、global スコープの設定は、C:\Users\maku\.gitconfig
に保存されます。
ただし、HOME
環境変数が設定されている場合は、そちらのディレクトリがホームディレクトリとして使用されます。