メインコンテンツへスキップ

🛠️ 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 設定は怖くありません。