Gitを使っていると、「今どんな設定になっているんだっけ?」「メールアドレスやユーザー名ってどこで確認するの?」と迷うことはありませんか?
git config
は、Gitの挙動や情報を制御するための重要な設定コマンドですが、意外と「確認方法」が分かりづらいものです。
特に、設定がローカル・グローバル・システムとスコープに分かれているため、意図した値が使われていなかった…というトラブルも起こりがちです。
本記事では、以下のような疑問をスッキリ解決できるように、実例つきでわかりやすく解説していきます。
git config
の基本的な確認方法は?- 各スコープ(local / global / system)の違いと確認方法は?
- 設定ファイルはどこにある?
- 設定が反映されない・優先されないときの対処法は?
Gitの設定に少しでも不安がある方は、この記事を読み終える頃には自信を持って設定を管理できるようになります。
ちなみにGit全体については「Git」のページにまとめているので、Gitの設定以外を知りたい方はこちらも参照してください。
- ✅ git config とは?
- 🔍 設定の確認方法
- 🛠 よく使う git config コマンド一覧
- 🧩 トラブルシュート|設定が反映されないときは?
- 💡 実践例:自分の設定を一括で確認する
- 📚 よくある質問(FAQ)
- Q. Gitの config を確認する方法は?
- Q. Git config ファイルはどこにありますか?
- Q. Gitのセットアップが完了しているか確認したいです
- Q. git config --list とは何ですか?
- Q. グローバルとローカルの設定、どちらが優先される?
- Q. GUI ツールを使っていて設定が意図しないものになるのですが?
- Q. 環境変数の設定を解除したいときはどうすれば?
- Q. .gitconfig を直接書き換えても反映されないことがあります。なぜ?
- Q. すべての設定を初期化したいです
- Q. コミットごとに一時的に名義を変えたい
- Q. すでに作ったコミットの名義を直したい
- Q. fatal: unable to auto-detect email address が出る
- 📝 まとめ
- 関連記事
✅ git config とは?
git config
は、Gitの動作をカスタマイズするための設定コマンドです。Gitを使う上で必要となるさまざまな情報を登録・変更・確認するために使用されます。
Gitは「分散型バージョン管理システム」であるため、利用者や環境に合わせて細かく設定できるようになっています。その中心となるのがこの git config
です。
たとえば、次のような用途で使用されます:
- ユーザー名やメールアドレスの設定
→ Gitのコミット履歴に記録される著者情報の設定 - デフォルトエディタの指定
→ コミットメッセージ入力時などに起動するテキストエディタを指定 - 改行コードの自動変換ルールの設定
→ OSごとに異なる改行コードの扱いを統一する設定 - 差分ツールやマージツールの指定
→ コンフリクト解消時に使用する外部ツールの指定 - 認証情報の保存方法の指定
→ パスワードやトークンの保存方法を定義(credential helper)
こうした設定は、すべて git config
コマンドで制御できます。
Gitは複数のレイヤー(スコープ)で設定を読み込む仕組みになっているため、設定がどの範囲に適用されているのかを意識することも重要です。
ちなみに、git config
に関するリファレンス情報をまとめた記事はこちらから[git config リファレンス]確認できます。
🔍 設定の確認方法
Gitの設定内容は、`git config` コマンドを使っていつでも確認できます。ここでは、すべての設定を一括で確認する方法から、特定の設定だけを確認する方法までを順に紹介します。
🔸 すべての設定を一括表示したいとき
git config --list
このコマンドを使うと、現在有効になっているすべての設定項目を一覧表示できます。表示内容にはローカル・グローバル・システムのすべてのスコープの設定が含まれます(※重複する場合は上書きされます)。
user.name=Your Name
user.email=you@example.com
color.ui=auto
core.editor=vim
...
🔸 git config の3スコープと“どれが効くか”の仕組み
git config
には system / global / local の3つのスコープがあります。
読み込み順は system → global → local
。同じキーが複数に存在する場合は、より後に読み込まれる=スコープの狭い設定が最終的に有効になります。
スコープ | 対象範囲 | 主な用途 | 一覧表示 |
---|---|---|---|
system | マシン上の全ユーザー | OS全体の既定値 | git config --system --list |
global | 現在のユーザー | ふだんの既定値 | git config --global --list |
local | カレントのリポジトリ | そのリポジトリだけの上書き | git config --local --list |
「結局いま有効なのはどれ?」を一気に見たいなら:
git config --list --show-origin # どのファイルから読まれた値か(=由来)が分かる
✅ “設定の確認”の基本パターン
全部まとめて確認
git config --list
実際には system → global → local
の順に展開され、同じキーは後段で上書きされた最終値が見えます。
特定キーだけ確認
git config user.name
git config user.email
同じキーが複数スコープにある場合、最終的に有効な値が返ります。
重複を含めてすべて見たいときは:
git config --get-all user.name
どこから読まれたかも確認
git config --list --show-origin
# (対応環境) git config --list --show-origin --show-scope
📂 設定ファイルの場所(OS別の実体)
local(リポジトリ単位)
<repo>/.git/config
global(ユーザー単位)
- 伝統的:
~/.gitconfig
(Linux / macOS) - 代替(XDG規約に準拠する環境):
~/.config/git/config
- Windows:
C:\Users\<User>\.gitconfig
system(システム全体)
- Linux / macOS(例):
/etc/gitconfig
ほか、インストール形態に依存 - Windows(例):
C:\Program Files\Git\mingw64\etc\gitconfig
C:\Program Files (x86)\Git\etc\gitconfig
- ツールに同梱されたGitの場合は当該ツール配下の
…\etc\gitconfig
にあることも
注意:
--system
の編集・書き込みには 管理者権限(sudo / 管理者権限) が必要な場合があります。
🧠 使い分けの指針(短縮まとめ)
- ふだんの既定値 →
--global
に置く - 特定プロジェクトだけ違う値にしたい → リポジトリ直下(
--local
)で上書き - 組織配布の共通既定値 →
--system
(要管理者権限)
案件ごとに名義やアドレスを変えるなら、各リポジトリで --local
上書き
git config user.name "Client A Dev"
git config user.email "dev@client-a.example"
🔸 特定の設定項目だけを確認したいとき
個別の設定内容を確認したい場合は、以下のようにキー名を指定して確認できます。
git config user.name
git config user.email
出力例:
Your Name
you@example.com
git config user.name:コミットに記録する「ユーザー名」を設定・確認する
user.name
は、Gitのコミット履歴に表示されるユーザー名(著者名)を指定するための設定です。
この値は、コミットログ内の「Author」欄に記録され、共同開発の際には誰が変更を行ったのかを明確にするために使われます。
設定の例は次のとおりです。
# すべてのリポジトリ共通で設定
git config --global user.name "Your Name"
# 特定のリポジトリのみ別名で設定
git config user.name "Project Contributor"
設定内容を確認したい場合は、次のように入力します。
git config user.name
これで、現在有効なユーザー名が表示されます。
どの設定ファイル(local / global / system)から読み込まれたかを確認したい場合は、--show-origin
オプションを付けて実行します。
git config user.email:コミットに記録する「メールアドレス」を設定・確認する
user.email
は、コミットの著者に紐づけられるメールアドレスを指定します。
多くの開発プラットフォームでは、メールアドレスがユーザー識別やアバター表示に使われます。
設定方法は user.name
と同様です。
# グローバル設定(全リポジトリ共通)
git config --global user.email "you@example.com"
# リポジトリ単位で別アドレスを使いたい場合
git config user.email "project@example.com"
設定済みのメールアドレスを確認するには次のコマンドを使います。
git config user.email
🛠 よく使う git config コマンド一覧
Gitの設定を扱う際によく使われる git config
の基本的なコマンドを一覧で紹介します。これらのコマンドを覚えておくことで、設定の確認や変更がスムーズになります。
コマンド | 説明 |
---|---|
git config --list | すべての設定を一覧表示する |
git config <key> | 指定したキーの設定内容を確認する |
git config --global <key> | グローバルスコープの設定を確認する |
git config --local <key> | ローカルスコープの設定を確認する |
git config --show-origin | 各設定がどのファイルに定義されているかを表示する |
git config -e | デフォルトのスコープで設定ファイルを直接編集する |
git config --unset <key> | 指定したキーの設定を削除する |
どのスコープに対して実行するかを意識して使うことが重要です。たとえば、ローカルの設定を編集したい場合には --local
を付けてコマンドを実行します。必要に応じて --global
や --system
を使い分けましょう。
よく使う git config の補助コマンド集(編集・削除・上書き)
git config
は設定の確認だけでなく、変更や削除なども柔軟に行えるコマンドです。ここでは、よく使われる補助的なオプションについて紹介します。
設定ファイルを直接編集する:-e
コマンド操作よりファイル編集の方が慣れている方は、-e
オプションを使うと便利です。
git config -e # ローカル設定ファイル(.git/config)を編集
git config --global -e # グローバル設定ファイル(~/.gitconfig)を編集
エディタが起動して、直接ファイル内容を編集できます。
設定を削除する:--unset / --unset-all
設定値を削除したいときには --unset
を使用します。
git config --global --unset user.name
同じキーが複数回設定されている場合は、すべて削除するには --unset-all
を使います。
git config --global --unset-all alias.co
すでに存在する設定を上書きする:--replace-all
すでに同じキーが存在している場合でも、強制的に新しい値に置き換えるには --replace-all
を使用します。
git config --global --replace-all user.name "New Name"
通常の git config --global user.name "New Name"
と似ていますが、複数同じキーがある場合でも一括で上書きされる点が異なります。
まとめ
コマンド | 概要 |
---|---|
-e | 対象スコープの設定ファイルを直接編集する |
--unset | 1つの設定項目を削除する |
--unset-all | 同じキーの設定をすべて削除する |
--replace-all | 同じキーが複数存在していても全てを上書きする |
Git設定を自在に扱えるようになることで、より柔軟に開発環境を管理できるようになります。設定のトラブル対応や、プロジェクトごとの調整にも役立つため、覚えておくと便利です。
🧩 トラブルシュート|設定が反映されないときは?
git config
で設定を変更したのに反映されていないように見える場合、いくつかの原因が考えられます。以下のポイントを順に確認していくことで、問題の特定と解決につながります。
スコープの優先順位を確認する
Gitの設定は以下の優先順位で適用されます:
local(リポジトリ単位) > global(ユーザー単位) > system(システム全体)
たとえば、~/.gitconfig
(グローバル)に user.name
を設定していても、ローカルの .git/config
に同じキーがあれば、そちらが優先されます。
設定が重複している可能性
同じキーが複数のスコープに存在すると、どの設定が有効になっているのかが分かりづらくなります。
その場合は、以下のコマンドでどのファイルから読み込まれているかを確認できます。
git config --show-origin --list
表示されるファイルパスを確認し、意図したスコープに正しく設定されているかを見直しましょう。
権限の問題
リポジトリ内の .git/config
ファイルが読み取り専用(または書き込み不可)になっていると、設定の変更や反映に失敗することがあります。
- ファイルの所有者やパーミッションを確認する
chmod
やchown
で適切な権限に変更する(必要に応じて)
環境変数が優先されている
Gitは一部の設定について、環境変数を優先する仕様があります。たとえば、以下のような変数が設定されていると、git config
の値が上書きされることがあります。
GIT_AUTHOR_NAME
GIT_AUTHOR_EMAIL
GIT_COMMITTER_NAME
GIT_COMMITTER_EMAIL
これらの変数が設定されていないかを確認し、不要であればシェル設定ファイル(.bashrc
, .zshrc
など)から削除またはコメントアウトしましょう。
設定がうまく反映されない場合は、焦らずにスコープ・優先順位・ファイル状態・環境変数の4点を順に確認してみることが大切です。
💡 実践例:自分の設定を一括で確認する
Gitの設定が正しく行われているかどうかを確認する最も効果的な方法が、--show-origin
オプションを使ったコマンドです。
設定値とともにどのファイルから読み込まれたのかが一目で分かるため、スコープや重複の確認にも便利です。
使用コマンド:
git config --show-origin --list
出力例:
file:/Users/you/.gitconfig user.name=Your Name
file:/Users/you/.gitconfig user.email=you@example.com
file:.git/config core.repositoryformatversion=0
file:.git/config remote.origin.url=git@github.com:example/repo.git
チェックポイント
以下のポイントを確認して、意図した設定になっているかをチェックしましょう。
- 名前とメールアドレスは正しいか?
→ チーム開発では特に、間違った情報でコミットしないよう注意が必要です。 - スコープが意図したものになっているか?
→~/.gitconfig
に設定したつもりが、ローカルの.git/config
に上書きされていないか確認します。 - 他ツールで設定されていないか?
→ VSCodeやSourceTreeなどのGUIツールは、内部的に独自の設定を行っている場合があります。ツールごとの設定画面や自動生成されたGit設定を見落とさないようにしましょう。
このコマンドとチェックリストを使えば、自分のGit設定に迷うことはほとんどなくなります。特に初期設定後や、チームメンバーと設定を揃える場面での確認におすすめです。
📚 よくある質問(FAQ)
Q. Gitの config を確認する方法は?
git config --list
を実行することで、現在有効になっているすべての設定を一覧表示できます。
特定の設定だけを確認したい場合は、以下のようにキーを指定します。
git config user.name
git config user.email
Q. Git config ファイルはどこにありますか?
設定の保存場所はスコープによって異なります。
スコープ | パス例 |
---|---|
システム | /etc/gitconfig (環境によって異なる) |
グローバル | ~/.gitconfig または ~/.config/git/config |
ローカル | <リポジトリ>/.git/config |
どのファイルが実際に使用されているかを確認するには、以下のコマンドを使用します。
git config --show-origin --list
Q. Gitのセットアップが完了しているか確認したいです
Gitを使う前に、ユーザー名とメールアドレスが設定されているか確認しましょう。
git config --global user.name
git config --global user.email
値が設定されていない場合は、以下のように設定してください。
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
Q. git config --list とは何ですか?
git config --list
は、すべてのスコープ(local / global / system)を含めた有効な設定を一覧表示するコマンドです。
重複している設定項目については、実際に適用されている値が表示されるため、現在の状態を把握するのに非常に便利です。
以下は、不足している要素「5. FAQの強化」に対応するセクションです。
検索ユーザーの意図をより深く汲み取った形で、基本的な疑問から一歩踏み込んだ内容までカバーしています。
Q. グローバルとローカルの設定、どちらが優先される?
A. Gitは次の優先順位で設定を読み込みます。
ローカル(.git/config) > グローバル(~/.gitconfig) > システム(/etc/gitconfig)
つまり、同じキー(例:user.name)が複数に存在する場合は、ローカルの値が優先されます。
どのスコープから読み込まれているかを調べるには、次のコマンドを使います:
git config --show-origin user.name
Q. GUI ツールを使っていて設定が意図しないものになるのですが?
A. GUI クライアント(例:SourceTree、GitKraken、VSCode)は、内部的に git config を操作している場合があります。
- GUI 上で設定した内容が
.gitconfig
に書き込まれる - 意図せずローカルスコープに書き込まれている
- ツール独自のキャッシュ機構が原因で反映されないこともある
コマンドラインで確認・上書きすることで、明示的な状態に戻せます。
Q. 環境変数の設定を解除したいときはどうすれば?
A. 以下のように、環境変数を一時的に無効にできます(セッション限定):
unset GIT_AUTHOR_NAME
unset GIT_AUTHOR_EMAIL
恒久的に削除するには、.bashrc
や .zshrc
に設定されている行を削除またはコメントアウトしてください。
Q. .gitconfig を直接書き換えても反映されないことがあります。なぜ?
A. いくつかの可能性があります:
- ファイル保存後にGitが再読み込みしていない(エディタの自動保存などが不完全)
- 構文ミスがある(
=
の前後に空白がないか、改行コードが正しいか) - 上位スコープの設定により上書きされている
このようなときは、git config --list --show-origin
で、どの設定が有効になっているかを再確認しましょう。
Q. すべての設定を初期化したいです
A. 各スコープの設定ファイルを削除またはリセットすれば初期状態に戻せます。
例:グローバル設定をリセット
mv ~/.gitconfig ~/.gitconfig.backup
touch ~/.gitconfig
もしくは一部の設定だけを削除したい場合は:
git config --global --unset user.name
git config --global --unset user.email
Q. コミットごとに一時的に名義を変えたい
A. コミット時に --author
を付ける:
git commit --author="Temp Name <temp@example.com>" -m "Fix"
(環境変数 GIT_AUTHOR_NAME
/ GIT_AUTHOR_EMAIL
でも一時上書き可)
Q. すでに作ったコミットの名義を直したい
A. 最新コミットのみなら --amend --reset-author
。複数に渡る場合は git rebase -i
等で履歴を書き換え(共有済みブランチでは注意)
git commit --amend --reset-author
Q. fatal: unable to auto-detect email address が出る
A. user.name
/ user.email
が未設定です。まずグローバルで設定しましょう:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
📝 まとめ
git config --list
を使えば、現在有効なすべての設定を一括で確認できます。- 設定はスコープ(
local
/global
/system
)によって管理され、それぞれ別の設定ファイルに保存されます。 --show-origin
オプションを使えば、設定がどのファイルに定義されているのかを特定できます。- 設定が反映されない場合は、スコープの優先順位や環境変数の影響をチェックすることが重要です。
Gitの設定は、快適な開発環境を保つだけでなく、チーム開発でのトラブルを防ぐためにも重要な知識です。
一度正しく理解しておくことで、ミスを減らし、作業効率を大きく向上させることができます。
ぜひこの記事をブックマークして、困ったときにすぐに確認できるようにしておきましょう。
🔗 参考リンク
Git の設定や git config
コマンドについて、より詳しく理解したい方はこちらの公式・解説記事も参考になります。
- Git公式ドキュメント:Gitの設定(git-config)
Git公式によるgit config
の基本とスコープ(システム/グローバル/ローカル)について詳しく解説。 - note.nkmk.me:Gitの設定をgit configで確認・変更
よく使う設定コマンドを具体例つきで紹介。設定ファイルの場所や優先順位もわかりやすい記事。 - Qiita:gitconfigの基本まとめ
初心者向けに.gitconfig
の書き方やよく使うオプションを整理した実践的なまとめ。 - 侍エンジニアブログ:git configで設定を確認・表示する方法
git config --list
など、よく使う表示コマンドを中心に解説しており、トラブル時の確認にも役立つ。
🧭 関連記事もチェック
Git の設定を理解したら、次は実際の操作や構成ファイルについても確認してみましょう。
- Gitとは?メリット・使い方
- git initコマンドとは?リポジトリを作成する基本と注意点
- git addの使い方|ステージングの仕組みと確認方法
- git commitの基本|メッセージの書き方と履歴管理のコツ
- git statusで変更内容を確認する|初心者が見るべきポイント
これらの記事を読むことで、Git の基本操作から設定管理まで、一連の流れを理解できます。
特に git config
の設定内容がリポジトリ全体の動作にどのように影響するかを知ると、より安心して作業できるようになります。
コメント