git config 完全ガイド

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