git config コマンドは、Git の設定ファイルにアクセスしてユーザー情報、エディタ、差分ツール、エイリアスなどの設定を読み書きするためのコマンドです。
設定は ローカル(リポジトリ単位)、グローバル(ユーザー単位)、システム全体 のいずれかのスコープで適用できます。
構文(Syntax)
git config [オプション] <キー> [値]
グローバル設定とローカル設定の違い
git config には 3つのスコープ(適用範囲)があります。どのスコープで設定するかによって、影響する範囲と保存先のファイルが変わります。
| スコープ | オプション | 保存先ファイル | 影響範囲 |
|---|---|---|---|
| ローカル | --local(デフォルト) | .git/config | そのリポジトリのみ |
| グローバル | --global | ~/.gitconfig | そのユーザーの全リポジトリ |
| システム | --system | /etc/gitconfig | マシン上の全ユーザー |
設定の優先順位は ローカル > グローバル > システム の順です。ローカルに設定があればそちらが優先されます。
グローバル設定を使うべきケース
名前・メールアドレスなど、どのリポジトリでも共通して使う設定はグローバルに設定します。
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global core.editor "vim"
ローカル設定を使うべきケース
仕事用と個人用で別のメールを使い分けたい場合など、リポジトリごとに設定を変えたいときはローカルに設定します。
# 仕事用リポジトリだけ会社のメールを使う
cd /path/to/work-repo
git config --local user.email "you@company.com"
# 設定確認(このリポジトリの設定だけ表示)
git config --local --list
--local はオプション省略時のデフォルトです。git config user.name "Alice" と書いた場合も --local として動作します。
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
--local | カレントリポジトリにのみ適用(デフォルト) | git config --local user.name "Alice" |
--global | ユーザー全体に適用(~/.gitconfig) | git config --global user.email "alice@example.com" |
--system | システム全体に適用(管理者権限必要) | sudo git config --system core.editor vim |
--list | 現在の設定一覧を表示 | git config --list |
--get <キー> | 特定の設定値を取得 | git config --get user.name |
--unset <キー> | 設定を削除 | git config --unset user.name |
-e | 設定ファイルをエディタで開く | git config -e --global |
実行例
ユーザー名とメールアドレスを設定(グローバル)
git config --global user.name "Alice"
git config --global user.email "alice@example.com"
デフォルトエディタを設定
git config --global core.editor "vim"
設定一覧を確認
git config --list
出力例:
user.name=Alice
user.email=alice@example.com
core.editor=vim
特定の設定を取得
git config --get user.email
出力例:
alice@example.com
設定を削除
git config --unset user.email
設定ファイルを直接編集
git config -e --global
エラー例(存在しないキーを取得)
git config --get user.phone
出力例:
(何も表示されない)
よくある設定例
エイリアスを登録する
長いコマンドを短縮形で呼び出せるようにします。
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --decorate"
# 使い方
git st # git status と同じ
git lg # ツリー形式でログ表示
デフォルトブランチ名を設定する
git init で作成されるデフォルトブランチ名を main に変更します(Git 2.28 以降)。
git config --global init.defaultBranch main
push のデフォルト動作を設定する
git push だけで現在のブランチを同名のリモートブランチに push するように設定します。
git config --global push.default current
pull のデフォルト動作を設定する
git pull 時に rebase を使うよう設定します(merge コミットを残さずに履歴をきれいに保てます)。
git config --global pull.rebase true
日本語ファイル名の文字化けを防ぐ
git status や git log で日本語ファイル名がエスケープされて表示される問題を解消します。
git config --global core.quotepath false
スコープを指定して設定を確認する
グローバル設定とローカル設定を分けて確認することで、どのスコープで何が設定されているか把握できます。
# グローバル設定のみ確認
git config --global --list
# ローカル設定のみ確認
git config --local --list
# 全スコープを合算して確認(実際に有効な値が確認できる)
git config --list
# 特定のキーが最終的にどの値になるか確認
git config user.email
関連コマンド
git init: 新しいリポジトリを作成。git clone: リポジトリを複製。git commit: コミットを作成。
備考
- 優先順位は local > global > system の順に適用されます。
git configで設定した内容は.git/config、~/.gitconfig、/etc/gitconfigに保存されます。- プロジェクトごとに異なるユーザー情報を使う場合は
--localを利用すると便利です。 - 詳細な確認はこちら:【保存版】git config の確認方法まとめ|スコープ・コマンド・設定ファイルを完全解説
参考
- Git公式ドキュメント: https://git-scm.com/docs/git-config

コメント