git config – Git の設定を管理するコマンド

コマンドリファレンス

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ユーザー全体に適用(~/.gitconfiggit 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 statusgit 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 : コミットを作成。

備考

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント