Git configの設定方法を完全解説【ユーザー名・メール・エイリアスまで】
Git configの設定方法を初心者向けに解説します。ユーザー名やメールアドレスの設定から、便利なエイリアス、エディタの変更まで、Gitを快適に使うための初期設定と実践的なカスタマイズ方法を学びましょう。
Git configとは
Git configは、Gitの動作をカスタマイズするための設定コマンドです。ユーザー名やメールアドレスの登録、デフォルトエディタの変更、コマンドのショートカット(エイリアス)の作成など、さまざまな設定を行えます。
Gitを使い始める前に、最低限ユーザー名とメールアドレスを設定する必要があります。この情報はすべてのコミットに記録され、「誰がこの変更を行ったか」を識別するために使われます。
設定のスコープ(適用範囲)
Git configには3つのスコープ(適用範囲)があります。
| スコープ | オプション | 設定ファイルの場所 | 適用範囲 |
|---|---|---|---|
| system | --system | /etc/gitconfig | すべてのユーザー |
| global | --global | ~/.gitconfig | 現在のユーザーのすべてのリポジトリ |
| local | --local | .git/config | 現在のリポジトリのみ |
設定が重複している場合は、より狭いスコープが優先されます(local > global > system)。
通常は--globalを使ってユーザー単位の設定を行い、プロジェクト固有の設定が必要な場合のみ--localを使います。
必須の初期設定
ユーザー名とメールアドレスの設定
Gitを使い始める前に必ず設定が必要な項目です。
# ユーザー名を設定
git config --global user.name "Your Name"
# メールアドレスを設定
git config --global user.email "your.email@example.com"
GitHubを使う場合は、GitHubアカウントに登録しているメールアドレスを設定してください。これにより、コミットが正しくアカウントに紐付けられます。
設定の確認
現在の設定を確認するには、以下のコマンドを使います。
# すべての設定を一覧表示
git config --list
# 特定の設定を確認
git config user.name
git config user.email
設定がどのファイルで定義されているか確認する場合:
git config --list --show-origin
デフォルトエディタの設定
コミットメッセージの編集やrebase時に使用するエディタを設定できます。
# Visual Studio Codeを使用
git config --global core.editor "code --wait"
# Vimを使用(デフォルト)
git config --global core.editor "vim"
# nanoを使用
git config --global core.editor "nano"
# Sublime Textを使用
git config --global core.editor "subl -n -w"
--waitオプションは、エディタが閉じられるまでGitが待機するために必要です。VS Codeの場合、このオプションがないとすぐにコマンドが終了してしまいます。
デフォルトブランチ名の設定
新しいリポジトリを作成したときのデフォルトブランチ名を設定できます。
git config --global init.defaultBranch main
以前はデフォルトがmasterでしたが、現在はmainを使うプロジェクトが増えています。
便利なエイリアスの設定
よく使うコマンドに短い名前(エイリアス)を付けることで、入力の手間を減らせます。
基本的なエイリアス
# git st で git status を実行
git config --global alias.st status
# git co で git checkout を実行
git config --global alias.co checkout
# git br で git branch を実行
git config --global alias.br branch
# git ci で git commit を実行
git config --global alias.ci commit
実用的なエイリアス
# 見やすいログ表示
git config --global alias.lg "log --oneline --graph --decorate"
# 直前のコミットを修正
git config --global alias.amend "commit --amend --no-edit"
# ステージングされた差分を表示
git config --global alias.staged "diff --staged"
# 最後のコミットの内容を表示
git config --global alias.last "log -1 HEAD --stat"
# 全ブランチの履歴をグラフ表示
git config --global alias.graph "log --oneline --graph --all"
エイリアスを使うと、たとえばgit log --oneline --graph --decorateという長いコマンドをgit lgだけで実行できます。
改行コードの設定
WindowsとmacOS/Linuxでは改行コードが異なるため、チーム開発では設定が重要です。
| OS | 改行コード | 推奨設定 |
|---|---|---|
| Windows | CRLF | core.autocrlf true |
| macOS/Linux | LF | core.autocrlf input |
# Windows
git config --global core.autocrlf true
# macOS/Linux
git config --global core.autocrlf input
trueはチェックアウト時にLF→CRLF、コミット時にCRLF→LFに変換します。inputはコミット時のみCRLF→LFに変換します。
カラー表示の設定
ターミナルでの出力を色付きにして見やすくします。
# すべての出力を色付きに
git config --global color.ui auto
現在のGitはデフォルトで色付き表示が有効ですが、無効になっている場合はこの設定で有効化できます。
プッシュの動作設定
git pushのデフォルト動作を設定できます。
# 現在のブランチを同名のリモートブランチにプッシュ
git config --global push.default current
# 上流ブランチが設定されている場合のみプッシュ(推奨)
git config --global push.default simple
simpleはGit 2.0以降のデフォルトで、最も安全な設定です。
プルの動作設定
git pull時のデフォルト動作を設定できます。
# リベースを使用
git config --global pull.rebase true
# マージを使用(デフォルト)
git config --global pull.rebase false
# fast-forwardのみ許可
git config --global pull.ff only
pull.rebase trueを設定すると、pull時に自動でリベースが行われ、不要なマージコミットを避けられます。詳しくはGit pullとfetchの違いを参照してください。
認証情報のキャッシュ
HTTPS接続でリモートリポジトリを使う場合、認証情報をキャッシュすると毎回入力する手間が省けます。
# メモリにキャッシュ(デフォルト15分)
git config --global credential.helper cache
# キャッシュ時間を1時間に設定
git config --global credential.helper 'cache --timeout=3600'
# macOSのキーチェーンを使用
git config --global credential.helper osxkeychain
# Windowsの資格情報マネージャーを使用
git config --global credential.helper manager
設定ファイルの直接編集
設定ファイルを直接エディタで開いて編集することもできます。
# グローバル設定ファイルを編集
git config --global --edit
# ローカル設定ファイルを編集
git config --local --edit
設定ファイルの例(~/.gitconfig):
[user]
name = Your Name
email = your.email@example.com
[core]
editor = code --wait
autocrlf = input
[init]
defaultBranch = main
[alias]
st = status
co = checkout
br = branch
ci = commit
lg = log --oneline --graph --decorate
[pull]
rebase = true
[push]
default = simple
初心者が混乱しやすいポイント
グローバルとローカルの設定の違い
グローバル設定はすべてのリポジトリに適用されますが、特定のプロジェクトで別の設定を使いたい場合はローカル設定で上書きできます。
# 仕事用のメールアドレスをグローバルに設定
git config --global user.email "work@company.com"
# 個人プロジェクトでは個人のメールアドレスを使用
cd ~/personal-project
git config --local user.email "personal@example.com"
設定を削除する方法
間違った設定を削除するには--unsetオプションを使います。
# グローバル設定を削除
git config --global --unset alias.st
# ローカル設定を削除
git config --local --unset user.email
設定が反映されない場合
設定が反映されない場合、より狭いスコープで別の値が設定されている可能性があります。
# 設定の出所を確認
git config --list --show-origin | grep user.email
おすすめの初期設定まとめ
Git を使い始める際におすすめの設定をまとめます。
# 必須設定
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# 推奨設定
git config --global init.defaultBranch main
git config --global core.editor "code --wait"
git config --global pull.rebase true
git config --global push.default simple
# 便利なエイリアス
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"
まとめ
Git configは、Gitの動作をカスタマイズするための設定コマンドです。
| 設定項目 | コマンド |
|---|---|
| ユーザー名 | git config --global user.name "名前" |
| メールアドレス | git config --global user.email "メール" |
| エディタ | git config --global core.editor "エディタ" |
| デフォルトブランチ | git config --global init.defaultBranch main |
| エイリアス | git config --global alias.名前 "コマンド" |
設定にはsystem、global、localの3つのスコープがあり、通常は--globalでユーザー単位の設定を行います。エイリアスを活用すれば、長いコマンドを短縮して作業効率を大幅に向上できます。
最初に必須設定(ユーザー名とメールアドレス)を済ませ、慣れてきたらエイリアスや各種オプションをカスタマイズして、自分だけの快適なGit環境を構築しましょう。
編集部