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

なぜ設定が必要?
Git はすべてのコミットに「誰が変更したか」の情報を記録します。
ユーザー名とメールアドレスが未設定の状態ではコミットができず、エラーになります。
GitHub を使う場合は、GitHub アカウントに登録したメールアドレスと一致させることで、コミットがそのアカウントに正しく紐付けられ、プロフィールのコントリビューショングラフにも反映されるようになります。
ユーザー名とメールアドレスを設定する
グローバル設定でユーザー名を登録
git config --global user.name "名前"を実行します。--globalをつけると、このPC上のすべてのリポジトリで共通の設定になります。グローバル設定でメールアドレスを登録
git config --global user.email "メール"を実行します。プロジェクトごとに別設定を使いたい場合
そのリポジトリ内で
--globalを外して実行します。リポジトリ固有の設定がグローバル設定より優先されます。仕事用と個人用でメールを使い分ける場合などに便利です。
# ユーザー名を設定(--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"設定を確認する
全設定を一覧表示
git config --listで現在有効な設定がすべて表示されます。個別に確認
git config user.nameのように key を指定すると、その項目だけ取得できます。どのファイルで設定されているか調べる
git config --show-origin user.nameで設定元のファイルパスがわかります。グローバル設定は~/.gitconfig、リポジトリ固有の設定は.git/configに保存されています。
# 全設定を一覧表示
git config --list
# 個別に確認
git config user.name
git config user.email
# どのファイルで設定されているか確認
git config --show-origin user.nameGitHub でメールアドレスを非公開にしたい場合
GitHub の Settings → Emails を開く
右上のアバターから Settings に入り、左サイドバーの Emails を選びます。
「Keep my email addresses private」を有効化
ダミーのメールアドレス(
username@users.noreply.github.com形式)が提供されます。そのアドレスを git config に設定
git config --global user.emailでダミーアドレスを登録すれば、本当のメールアドレスをコミット履歴に残さずに済みます。
# 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 -iやgit filter-branch/git filter-repoが必要ですが、履歴書き換えは影響が大きいので通常は必要ありません。
# エラー例
# *** 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>"