目次
GitHubコミットのメールアドレスを非公開(noreply)にする方法
STEP 1: GitHub側でnoreplyアドレスを確認する
- GitHubにログインし、[Settings] > [Emails] ページ (
https://github.com/settings/emails) を開く。 - [Keep my email addresses private] (メールアドレスを非公開にする) にチェックを入れる。
- その下に表示される
[ID]+[USERNAME]@users.noreply.github.comという形式のアドレスをコピーする。 - (推奨)[Block command line pushes that expose my email] (メールアドレスを公開するコマンドラインプッシュをブロックする) にもチェックを入れる。
- これを入れておくと、万が一ローカルPCのGit設定(次のSTEP)を忘れていても、GitHubがプッシュを拒否してくれて事故を防げる。
STEP 2: ローカルPCのGit設定を変更する (git config)
ターミナルを開き、以下のコマンドを実行して、ローカルPCのGit設定に「STEP 1」でコピーしたnoreplyアドレスを設定する。
# PC全体(グローバル)の設定を変更
git config --global user.email "[ID]+[USERNAME]@users.noreply.github.com"
以下のコマンドで、設定が正しく変更されたか確認する。
git config --global user.email
# => [ID]+[USERNAME]@users.noreply.github.com と表示されればOK
まとめ
これで、今後このPCからコミットされる履歴には、個人のメールアドレスではなくnoreplyアドレスが記録されるようになる。
- 注意点: この設定は未来のコミットにのみ適用される。過去にプッシュしたコミットのメールアドレスは変更されないため、過去分も修正したい場合は、履歴の書き換え(
git filter-repoなど)という別の作業が必要になる
複数のSSHキー(アカウント)を切り替える方法
# アカウントごとにSSHキーペアを作成する
# 例: 個人用
ssh-keygen -t ed25519 -C "personal_email@example.com" -f ~/.ssh/id_rsa_personal
#GitHubに公開鍵を登録する
GitHubアカウントにログインし、~/.ssh/id_rsa_work.pubの中身を [Settings] > [SSH and GPG keys] に登録する。
# ~/.ssh/config の内容
# 個人用を追加
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_personal
IdentitiesOnly yes
#個人用のリポジトリではgithub-personalに書き換える。
/git remote set-url origin git@github-personal:my-username/my-repo.git