グローバル設定とローカル設定の比較
Git には異なるレベルの設定があります。すでに --global
設定を見てきましたが、これはすべてのリポジトリに適用されます。また、--local
設定もあり、これは現在いる特定のリポジトリにのみ適用されます。ローカル設定は、その特定のリポジトリに関してグローバル設定を上書きします。
リポジトリのローカル設定を確認するには、Git リポジトリの中にいて、git config --local --list
を実行する必要があります。この実験ではまだ新しいリポジトリを作成していないので、現時点でこのコマンドを実行するとエラーになります。
まず、新しいディレクトリを作成し、その中に Git リポジトリを初期化しましょう。これは「初めての Git 実験」で行ったのと同じです。
mkdir my-local-repo
cd my-local-repo
git init
初期化メッセージが表示されるはずです。
Initialized empty Git repository in /home/labex/project/my-local-repo/.git/
これで my-local-repo
ディレクトリ(これは Git リポジトリです)の中にいるので、そのローカル設定を確認できます。
git config --local --list
この特定のリポジトリにはまだローカル設定が設定されていないため、出力がないか、非常に少ない出力が表示されるでしょう。
では、グローバル設定と異なるローカル設定を設定しましょう。たとえば、この特定のリポジトリに異なる user.name
を設定します。
git config --local user.name "Local User"
このコマンドは、my-local-repo
に対して具体的に user.name
を設定します。
再度、ローカル設定を一覧表示しましょう。
git config --local --list
これで、ローカルの user.name
が表示されるはずです。
user.name=Local User
最後に、--global
または --local
を指定せずに user.name
を要求した場合に何が起こるかを見てみましょう。Git は設定を次の順序で探します:ローカル、グローバル、そしてシステム。最初に見つかった設定が使用されます。
my-local-repo
の中にいる状態でこのコマンドを実行します。
git config user.name
ローカル設定がグローバル設定を上書きするため、ローカルのユーザー名が表示されるはずです。
Local User
次に、~/project
ディレクトリ(my-local-repo
の外)に戻ります。
cd ~/project
そして、同じコマンドを再度実行します。
git config user.name
今回は、ローカル設定のあるリポジトリの中にいないため、Git はグローバル設定を使用します。
Jane Doe
これは、ローカル設定がグローバル設定よりも優先されることを示しています。これにより、個々のプロジェクトに特定の設定を持ちながら、他のすべてのプロジェクトに対して一般的な設定を維持することができます。