メインコンテンツへスキップ

# ⚙️ git config で設定できる主要項目

🧭 はじめに

このページでは、git config で設定できる 代表的かつ実務で重要な項目をカテゴリ別に整理します。 Git の設定項目は非常に多いため、本記事では **「触る可能性があるもの」「意味を理解しておくべきもの」**に絞ります。

目的は以下の 3 点です。

  • 見かけた設定項目の意味が分かる
  • 何を触ってよくて、何が危険か判断できる
  • チーム運用で合意すべきポイントが見える

👤 ユーザー情報関連

🧑 user.name / user.email

コミットの作者情報。

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

コミット履歴の author / committer に記録され、後から変更できません。


📝 エディタ・表示関連

✏️ core.editor

コミットメッセージ編集に使うエディタ。

git config --global core.editor "code --wait"

VS Code や Vim など、慣れたエディタを指定するのが推奨です。


👀 core.pager

git log などの出力に使われるページャ。

git config --global core.pager less

📏 改行・文字コード関連(重要)

🔁 core.autocrlf

改行コード(CRLF / LF)の自動変換。

git config --global core.autocrlf false
意味
true checkout で CRLF / commit で LF
input checkout はそのまま / commit で LF
false 一切変換しない

チームで統一しないと差分地獄になります。


📄 core.safecrlf

危険な改行変換を検知。

git config --global core.safecrlf true

true にしておくと事故を未然に防げます。


📦 ステージング・差分関連

📊 diff.tool

diff 表示に使う外部ツール。

git config --global diff.tool vscode

🧩 merge.tool

マージ競合時に使うツール。

git config --global merge.tool vscode

IDE と Git の連携を強化する設定です。


🌿 ブランチ・履歴関連

🔀 pull.rebase

git pull 時の挙動。

git config --global pull.rebase true
挙動
false merge(デフォルト)
true rebase

チームで方針を揃えないと履歴が混乱します。


📜 fetch.prune

削除されたリモートブランチを自動で消す。

git config --global fetch.prune true

ローカルブランチが散らからずおすすめです。


🚀 パフォーマンス・利便性

⚡ core.preloadIndex

インデックスの先読み。

git config --global core.preloadIndex true

🧠 gc.auto

自動ガベージコレクションの頻度。

git config --global gc.auto 256

巨大リポジトリでのみ意識する設定です。


🔐 セキュリティ・安全性

🔒 core.protectHFS / core.protectNTFS

ファイル名衝突の防止(macOS / Windows)。

git config --global core.protectNTFS true

異なる OS 混在チームでは有効化推奨。


🧨 receive.denyNonFastForwards(サーバ側)

強制 push 防止。

サーバ設定なので通常のクライアントでは触りません。


🧪 エイリアス(超便利)

⌨️ alias.*

Git コマンドのショートカット。

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.lg "log --oneline --graph"

作業効率が劇的に上がる定番設定です。


🚫 安易に触るべきでない項目

  • core.worktree
  • index.*
  • extensions.*
  • object.*
  • transfer.*

内部構造に直結するため、理解なしに触るとリポジトリを壊します。


🧠 まとめ

  • git config の項目は カテゴリで理解すると整理しやすい

  • 実務で重要なのは

    • user / core.autocrlf / pull.rebase / alias
  • 危険な項目は 触らない判断も重要

「設定項目を知っている」だけで Git トラブルの大半は回避できます。