よく使う git config 設定一覧
Git の初期設定・推奨設定をカテゴリ別に一覧で紹介。user.* / core.* / pull.* / push.* / alias.* などよく使うキーをまとめたリファレンス
設定の場所とスコープ
Git の設定は3段階のスコープで管理されます。
狭いスコープの設定が広いスコープを上書きします。
| スコープ | 保存場所 | 適用範囲 |
|---|---|---|
--system |
/etc/gitconfig |
マシン上の全ユーザー |
--global |
~/.gitconfig または ~/.config/git/config |
ログインユーザーの全リポジトリ |
--local |
.git/config |
特定のリポジトリのみ |
最初の user.name / user.email は --global に、仕事用メールなどの上書きは --local に設定するのが基本です。
# 現在の設定を一覧表示(出所付き)
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 |
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 |
# 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.defaultBranch を main にしておかないと git init 時に警告が出ます。
| キー | 説明 | 例 |
|---|---|---|
init.defaultBranch |
git init の初期ブランチ名 |
main |
branch.autoSetupRebase |
新規ブランチの pull を rebase にする | always / remote |
branch.sort |
git branch の並び順 |
-committerdate(更新順) |
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 |
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 |
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 |
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(デフォルト) |
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 -- |
ステージを戻す |
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 |
# 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> |
複数値を持つキーを全削除 |
# 全体を確認
git config --list --show-origin
# 個別の値
git config --get user.email
# キーを削除
git config --global --unset alias.co
Git Ready