🛠️ git config について 〜設定の仕組みと安全な使い方〜
🧭 はじめに
このページでは、Git の設定を管理する git config コマンドについて整理します。
「どこに設定が保存されるのか」「スコープの違い」「安全な使い方と注意点」を中心に、
.git/config を直接編集せずに済む正しい運用方法を理解することが目的です。
🧩 git config とは何か
git config は、Git の動作を制御する 設定値(configuration)を取得・変更するための公式コマンドです。
Git の設定はテキストファイルで管理されていますが、直接編集するのではなく git config を通して操作するのが原則です。
Git の設定は ini 形式で保存されていますが、git config は整合性やスコープを自動で管理してくれます。
🗂️ 設定のスコープ(保存場所)
Git の設定には **3 つの階層(スコープ)**があります。
🌍 system(システム全体)
- 端末全体に影響
- 管理者権限が必要なことが多い
git config --system user.name
👤 global(ユーザー単位)
- ユーザーの全リポジトリに適用
- 一番よく使う
git config --global user.name "Your Name"
📁 local(リポジトリ単位)
- 特定のリポジトリのみ
.git/configに保存される
git config user.email "repo@example.com"
通常は global を基本にし、例外的に local を使うのが安全で分かりやすい運用です。
🧠 優先順位のルール
同じ設定キーが複数スコープに存在する場合、優先順位は以下の通りです。
local > global > system
つまり、リポジトリ固有の設定が最優先されます。
この仕組みにより「会社リポジトリだけ別メールアドレスを使う」といった運用が可能です。
🔍 設定の確認方法
全設定を表示
git config --list
どこ由来の設定かも確認
git config --list --show-origin
トラブル時は `--show-origin` が非常に有効です。
✏️ よく使う設定項目
👤 ユーザー情報
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
📝 エディタ設定
git config --global core.editor "code --wait"
📏 改行コードの扱い
git config --global core.autocrlf false
core.autocrlf はチーム内で方針を揃えないと事故の元になります。
🧪 値の取得・削除
値を取得
git config user.name
設定を削除
git config --global --unset user.name
🚫 直接 .git/config を編集してはいけない理由
.git/config は local 設定の実体ですが、手動編集は推奨されません。
理由:
- 記述ミスで Git が壊れる可能性
- スコープや型の管理を自分で行う必要がある
- Git コマンドとの不整合が起きやすい
設定変更は必ず git config を使うこと。手動編集は最終手段です。
🧩 git config が内部でやっていること
git config は以下を自動で処理します。
- 正しいファイル(system / global / local)の選択
- ini 構文の保証
- 既存値の上書き・削除
- 優先順位の解決
git config は「Git 設定専用の安全な API」と考えると分かりやすいです。
🧠 まとめ
- Git の設定は git config で管理する
- スコープは system / global / local
- 優先順位は local が最優先
.git/configの直接編集は原則禁止
git config を正しく使えば、Git 設定は怖くありません。