Git初心者が最初に設定しておきたい git config まとめ
目的
Gitを使い始めたとき、最初にどの git config を設定しておけばよいかは意外と迷いやすいです。
この記事では、初心者が最初に入れておくと困りにくい設定に絞って整理します。
構成は、Qiitaの Git 初期設定 の流れを参考にしつつ、今回は git config に限定 してまとめます。
この記事の対象読者
- Gitを使い始めたばかりの人
-
git initの次に何を設定すればいいか知りたい人 - GitHubへ初めて
pushする前に、最低限の設定を済ませたい人 - WSL / Linux / macOS で開発する人
まずはこれだけ設定すればOK
最初は、まずこの5つで十分です。
git config --global user.name "Gitに記録したい名前"
git config --global user.email "Gitに記録したいメールアドレス"
git config --global user.useConfigOnly true
git config --global init.defaultBranch main
git config --global core.editor "code --wait"
「最低限でいいので、まず困りにくくしたい」という場合は、ここだけ先に入れておけば大丈夫です。
前提環境
この記事は、次の前提で書いています。
- Git インストール済み
- ターミナルが使える
- VS Code を使う例で説明する
- 主に WSL / Linux / macOS を想定する
Windowsネイティブ環境では、改行コードまわりの設定は少し考え方が変わります。
そのためcore.autocrlfは環境に応じて調整してください。
設定確認
Git バージョン確認
まずは Git が使える状態か確認します。
git --version
現在の設定確認
グローバル設定は以下で確認できます。
git config --global --list
設定ファイルの場所
よく使う設定ファイルは次の2つです。
- Global:
~/.gitconfig - Local:
.git/config
最初は --global の設定を使えば十分です。
必須設定
1. Git に記録する名前とメールアドレスを設定する
最初にやるべき設定は user.name と user.email です。
git config --global user.name "Gitに記録したい名前"
git config --global user.email "Gitに記録したいメールアドレス"
例:
git config --global user.name "Taro Yamada"
git config --global user.email "your-email@example.com"
補足
-
user.nameは、Git のコミットに記録する名前です - 必ずしも本名である必要はありません
- 業務ではチームで分かりやすい表記、個人開発ではハンドルネームでも問題ありません
2. Git がユーザー情報を勝手に推測しないようにする
user.useConfigOnly を true にしておくと、Git が user.name と user.email を勝手に推測しないようにできます。
git config --global user.useConfigOnly true
これは、意図しない名前やメールアドレスでコミットする事故を減らしやすい設定です。
3. デフォルトブランチを main にする
git init したときの初期ブランチ名を main に統一したいなら、init.defaultBranch を設定します。
git config --global init.defaultBranch main
最近は master ではなく main を使うことが多いので、最初に揃えておくと後で楽です。
推奨設定
4. エディタを設定する
Git は、コミットメッセージやタグメッセージの編集時にエディタを起動します。
VS Code を使うなら次が分かりやすいです。
git config --global core.editor "code --wait"
5. git fetch 時に不要なリモート追跡ブランチを整理する
fetch.prune=true を入れておくと、git fetch 時にリモート側で削除済みのブランチ参照を整理しやすくなります。
git config --global fetch.prune true
origin/feature/xxx のような参照が残り続けて見通しが悪くなるのを減らせます。
6. 初回 push を楽にする
ここは初心者が引っかかりやすいポイントです。
upstream とは何か
upstream は、「このローカルブランチが追跡するリモートブランチ」 のことです。
たとえば、ローカルの feature/login が origin/feature/login を追跡している状態が upstream 設定済みの状態です。
明示的に設定する場合
初回 push のときは、従来はこう書くことが多いです。
git push -u origin feature/login
push.autoSetupRemote を使う場合
push.autoSetupRemote=true を設定すると、現在のブランチに upstream が無い状態で通常の git push をしたとき、--set-upstream 相当を自動で仮定 してくれます。
git config --global push.autoSetupRemote true
何が楽になるのか
これを入れておくと、新しいブランチで初回 push するときに、
git push
で済みやすくなります。
ただし、複数 remote を使う運用や fork ベースの運用では、明示的に git push -u origin ブランチ名 と書いた方が安全なことがあります。
個人開発や単一 origin 前提なら、かなり実用的です。
7. 改行コードの事故を減らす
WSL / Linux / macOS 系で作業するなら、core.autocrlf input は有力です。
git config --global core.autocrlf input
コミット時に CRLF を LF に寄せやすくしつつ、チェックアウト時の自動変換はしない設定です。
Windowsネイティブ環境では、この値が最適とは限りません。
チームの運用や.gitattributesの方針に合わせて決めるのが安全です。
8. 日本語ファイル名を見やすくする
日本語ファイル名が読みにくいエスケープ表記になるのを防ぎたい場合は、以下を設定します。
git config --global core.quotepath false
9. マージコンフリクトを見やすくする
コンフリクト表示を見やすくしたい場合は、以下を設定します。
git config --global merge.conflictStyle zdiff3
競合時に、どの差分がどう衝突しているか追いやすくなります。
環境によっては
zdiff3が使えないことがあります。
その場合はdiff3を検討してください。
10. 同じコンフリクトの解決を再利用する
rerere.enabled=true は、過去に解決したコンフリクトを記録して、同じ衝突に再遭遇したときに再利用しやすくする 設定です。
git config --global rerere.enabled true
必須ではありませんが、今後 rebase や cherry-pick を触るなら、早めに入れておいても損は少ないです。
まとめ
Git初心者が最初に設定しておくと便利なのは、まず以下です。
user.nameuser.emailuser.useConfigOnlyinit.defaultBranchcore.editor
余裕があれば、以下も入れておくと運用しやすくなります。
fetch.prunepush.autoSetupRemotecore.autocrlfcore.quotepathmerge.conflictStylererere.enabled
特に push.autoSetupRemote は、初回 push と upstream 設定の関係を理解するきっかけとしてもよい設定です。
最初から全部を深く理解しきる必要はありません。まずは「初期にハマりやすい点を減らす設定」を入れて、使いながら意味を覚えていけば十分です。