トラブルシューティング

よく使う git config 設定一覧

Git の初期設定・推奨設定をカテゴリ別に一覧で紹介。user.* / core.* / pull.* / push.* / alias.* などよく使うキーをまとめたリファレンス

よく使う git config 設定一覧 diagram

設定の場所とスコープ

Git の設定は3段階のスコープで管理されます。

狭いスコープの設定が広いスコープを上書きします。

スコープ 保存場所 適用範囲
--system /etc/gitconfig マシン上の全ユーザー
--global ~/.gitconfig または ~/.config/git/config ログインユーザーの全リポジトリ
--local .git/config 特定のリポジトリのみ

最初の user.name / user.email--global に、仕事用メールなどの上書きは --local に設定するのが基本です。

bash
# 現在の設定を一覧表示(出所付き)
git config --list --show-origin

# global 設定ファイルを直接編集
git config --global --edit

# 特定キーの値を確認
git config --get user.email

ユーザー情報(user.*)

コミットの作成者情報として使われます。

user.email は GitHub のアカウントに登録済みのアドレスに合わせると、コミットが自分のアカウントに正しく紐付きます。

キー 説明
user.name コミットに記録される氏名 "Taro Yamada"
user.email コミットに記録されるメール "taro@example.com"
user.signingkey 署名に使う GPG/SSH 鍵 ABC1234567890
commit.gpgsign すべてのコミットを署名するか true / false
bash
git config --global user.name "Taro Yamada"
git config --global user.email "taro@example.com"

# 仕事用リポジトリだけ別メールに上書き
cd ~/work/project
git config --local user.email "taro@company.com"

エディタ・表示(core.*)

コミットメッセージを書くエディタや、git log などの出力をページャに流すかどうかを制御します。

キー 説明
core.editor コミットメッセージ用エディタ "code --wait" / "vim" / "nano"
core.pager 長い出力で使うページャ "less -FRX" / "cat" で無効化
core.autocrlf 改行コードの自動変換 Win: true、Mac/Linux: input
core.fileMode 実行権限ビットを追跡するか false で権限差分を無視
core.ignorecase ファイル名の大文字小文字を無視 Win/Mac: true
core.excludesfile グローバル gitignore の場所 ~/.gitignore_global
bash
# VS Code をエディタに設定
git config --global core.editor "code --wait"

# 全ユーザー共通の gitignore を用意
git config --global core.excludesfile ~/.gitignore_global

# Mac / Linux での改行設定
git config --global core.autocrlf input

初期化・ブランチ(init.* / branch.*)

デフォルトブランチ名や、新しいブランチ作成時の挙動を制御します。

init.defaultBranchmain にしておかないと git init 時に警告が出ます。

キー 説明
init.defaultBranch git init の初期ブランチ名 main
branch.autoSetupRebase 新規ブランチの pull を rebase にする always / remote
branch.sort git branch の並び順 -committerdate(更新順)
bash
git config --global init.defaultBranch main
git config --global branch.sort -committerdate

プッシュ(push.*)

git push のデフォルト動作を決めます。

push.autoSetupRemote を有効にすると、新規ブランチを初回プッシュするときに -u を省けるので便利です。

キー 説明
push.default 引数なし git push の挙動 simple(推奨・2.0以降のデフォルト)
push.autoSetupRemote 新規ブランチで upstream を自動設定 true
push.followTags push 時に注釈付きタグも送る true
bash
git config --global push.default simple
git config --global push.autoSetupRemote true
git config --global push.followTags true

プル・フェッチ(pull.* / fetch.*)

git pull 時のマージ戦略と、git fetch 時の不要ブランチの掃除を制御します。

fetch.prune true を有効にすると、リモートで削除されたブランチが自動的にローカルからも消えます。

キー 説明
pull.rebase pull 時に rebase するか true / false / merges
pull.ff pull 時の fast-forward 方針 only(ff できなければエラー)
fetch.prune fetch 時にリモートで消えたブランチを削除 true
fetch.pruneTags タグも同様に掃除 true
bash
git config --global pull.rebase true
git config --global pull.ff only
git config --global fetch.prune true

マージ・リベース(merge.* / rebase.*)

コンフリクト時の表示形式や、rebase 時の一時退避の自動化を制御します。

merge.conflictstyle zdiff3 はコンフリクト時に共通祖先も表示する現代的な形式です。

キー 説明
merge.conflictstyle コンフリクトマーカーの形式 zdiff3(推奨・Git 2.35+)
merge.tool マージツール vscode / kdiff3
rebase.autoStash rebase 前に未コミット変更を自動 stash true
rebase.autoSquash fixup! コミットを自動でまとめる true
rebase.updateRefs 連鎖するブランチを同時に更新 true
bash
git config --global merge.conflictstyle zdiff3
git config --global rebase.autoStash true
git config --global rebase.autoSquash true

差分・色(diff.* / color.*)

差分表示の品質を上げる設定です。

diff.algorithm histogram は移動やリネームの検出精度が高く、diff.colorMoved を有効にすると移動されたブロックが別の色で強調されます。

キー 説明
diff.algorithm 差分アルゴリズム histogram(推奨)
diff.colorMoved 移動行を別色で表示 zebra
diff.mnemonicPrefix a/ b/ の代わりに c/ w/ i/ を使う true
diff.renames リネーム検出 true / copies(コピーも)
color.ui 色付け全体のオンオフ auto(デフォルト)
bash
git config --global diff.algorithm histogram
git config --global diff.colorMoved zebra
git config --global diff.mnemonicPrefix true

エイリアス(alias.*)

よく使うコマンドに短い名前を付けられます。

シェルコマンドを呼ぶ場合は ! を先頭に付けます。

エイリアス 展開先 用途
st status 状態確認の短縮
co checkout ブランチ切り替え
br branch ブランチ一覧
ci commit コミット
lg log --oneline --graph --decorate --all コミットグラフ
last log -1 HEAD 直前のコミット
unstage reset HEAD -- ステージを戻す
bash
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.lg "log --oneline --graph --decorate --all"
git config --global alias.last "log -1 HEAD"
git config --global alias.unstage "reset HEAD --"

認証(credential.*)

HTTPS 接続時の認証情報のキャッシュ方法を設定します。

OS 標準の資格情報ストアを使うと毎回トークンを入力する必要がなくなります。

キー 説明
credential.helper 認証情報の保存方法 macOS: osxkeychain / Win: manager / Linux: cache
credential.useHttpPath URL パスごとに別の認証情報を使う true
bash
# macOS
git config --global credential.helper osxkeychain

# Windows
git config --global credential.helper manager

# Linux(15分キャッシュ)
git config --global credential.helper "cache --timeout=900"

設定の確認と削除

設定した値を確認・編集・削除するコマンドです。

意図しない値が残っているときは --show-origin でどのファイルに書かれているかを追跡できます。

コマンド 用途
git config --list 現在有効な設定を全表示
git config --list --show-origin どの設定ファイル由来かも表示
git config --global --edit グローバル設定ファイルをエディタで開く
git config --get <key> 特定のキーの値だけ取得
git config --unset <key> 特定のキーを削除
git config --unset-all <key> 複数値を持つキーを全削除
bash
# 全体を確認
git config --list --show-origin

# 個別の値
git config --get user.email

# キーを削除
git config --global --unset alias.co

関連コマンド