Gitの動作は、`git config`コマンドを通じて制御される設定ファイルによって定義される。本稿では、この`git config`のスコープ、確認方法、編集方法を技術者向けに詳説する。
1. git configの3つのスコープ
Gitの設定は、3つの異なるレベル(スコープ)で管理される。設定が競合した場合、より限定的なスコープが優先される(local > global > system)。
ローカル (local)
- 優先度: 1 (最高)
- 影響範囲: そのリポジトリのみ
- 設定ファイルのパス:
.git/config
グローバル (global)
- 優先度: 2
- 影響範囲: 現在のログインユーザーの全リポジトリ
- 設定ファイルのパス:
~/.gitconfig
または~/.config/git/config
システム (system)
- 優先度: 3 (最低)
- 影響範囲: システムの全ユーザーと全リポジトリ
- 設定ファイルのパス:
/etc/gitconfig
(OSにより異なる)
2. 設定内容の確認
現在の設定値を確認する方法は複数存在する。
2.1. 全設定のリスト表示
適用されている全ての設定を一覧表示するには、`--list`オプションを使用する。
git config --list
各設定がどのファイルから読み込まれているかを確認するには、`--show-origin`を追加するとよい。
git config --list --show-origin
2.2. 特定キーの取得
特定のキーに対する値を取得するには、キー名を直接指定する。これは内部的に`--get`を実行しているのと同じである。
# ユーザー名を確認
git config user.name
# メールアドレスを確認
git config user.email
3. 設定内容の編集
設定の編集は、コマンドラインから直接行う方法と、設定ファイルを手動で編集する方法がある。
3.1. コマンドによる直接編集
最も一般的な方法である。`--global`や`--local`といったスコープオプションを付けて実行する。オプションを省略した場合は`--local`が適用される。
# グローバルにユーザー名を設定
git config --global user.name "Your Name"
# このリポジトリのみメールアドレスを設定
git config --local user.email "project-specific@example.com"
設定を削除する場合は`--unset`を使用する。
# グローバルのエイリアス設定を削除
git config --global --unset alias.st
3.2. 設定ファイルの手動編集
`--edit`オプションを使用すると、環境変数 `EDITOR` で指定されたエディタで設定ファイルを開くことができる。複数の設定を一度に編集する場合に効率的である。
# グローバル設定ファイルを開く
git config --global --edit
# ローカル設定ファイルを開く
git config --edit