Git Ready
git config でユーザー名とメールアドレスを設定する
はじめに

git config でユーザー名とメールアドレスを設定する

Git を使う前に必ず行う初期設定。ユーザー名・メールアドレスの登録方法と確認方法

git config でユーザー名とメールアドレスを設定する eyecatch

なぜ設定が必要?

Git はすべてのコミットに「誰が変更したか」の情報を記録します。

ユーザー名とメールアドレスが未設定の状態ではコミットができず、エラーになります。

GitHub を使う場合は、GitHub アカウントに登録したメールアドレスと一致させることで、コミットがそのアカウントに正しく紐付けられ、プロフィールのコントリビューショングラフにも反映されるようになります。

ユーザー名とメールアドレスを設定する

  1. グローバル設定でユーザー名を登録

    git config --global user.name "名前" を実行します。--global をつけると、このPC上のすべてのリポジトリで共通の設定になります。

  2. グローバル設定でメールアドレスを登録

    git config --global user.email "メール" を実行します。

  3. プロジェクトごとに別設定を使いたい場合

    そのリポジトリ内で --global を外して実行します。リポジトリ固有の設定がグローバル設定より優先されます。仕事用と個人用でメールを使い分ける場合などに便利です。

bash
# ユーザー名を設定(--global: 全リポジトリ共通)
git config --global user.name "山田 太郎"

# メールアドレスを設定
git config --global user.email "taro@example.com"

# 特定のリポジトリだけ別の設定にする場合
cd /path/to/project
git config user.name "Taro Yamada"
git config user.email "taro@company.com"

設定を確認する

  1. 全設定を一覧表示

    git config --list で現在有効な設定がすべて表示されます。

  2. 個別に確認

    git config user.name のように key を指定すると、その項目だけ取得できます。

  3. どのファイルで設定されているか調べる

    git config --show-origin user.name で設定元のファイルパスがわかります。グローバル設定は ~/.gitconfig、リポジトリ固有の設定は .git/config に保存されています。

bash
# 全設定を一覧表示
git config --list

# 個別に確認
git config user.name
git config user.email

# どのファイルで設定されているか確認
git config --show-origin user.name

GitHub でメールアドレスを非公開にしたい場合

  1. GitHub の Settings → Emails を開く

    右上のアバターから Settings に入り、左サイドバーの Emails を選びます。

  2. 「Keep my email addresses private」を有効化

    ダミーのメールアドレス(username@users.noreply.github.com 形式)が提供されます。

  3. そのアドレスを git config に設定

    git config --global user.email でダミーアドレスを登録すれば、本当のメールアドレスをコミット履歴に残さずに済みます。

bash
# GitHub のダミーメールアドレスを使う
git config --global user.email "username@users.noreply.github.com"

# GitHub で未認証メールのコミットをブロック
# Settings → Emails → "Block command line pushes that expose my email"

よくあるトラブル

  • Author identity unknown

    user.name と user.email が未設定のときに出るエラーです。git config --global user.name / user.email を登録してください。

  • 過去のコミットの著者情報が古い

    コミット後に名前を変更しても、過去のコミットには反映されません。直前のコミットだけなら git commit --amend --author で修正できます。

  • 過去のコミット全体の著者を書き換えたい

    git rebase -igit filter-branch / git filter-repo が必要ですが、履歴書き換えは影響が大きいので通常は必要ありません。

bash
# エラー例
# *** Please tell me who you are.
# Run
#   git config --global user.email "you@example.com"
#   git config --global user.name "Your Name"

# 直前のコミットの著者情報だけ修正する場合
git commit --amend --author="新しい名前 <new@email.com>"

関連コマンド