GitHubのコミット履歴でメールアドレスが意図せず公開されるのを防ぐ

公開日:

概要

GitHubでは、コミットに使用したメールアドレスがコミット履歴から見えてしまいます。普段使用しているメールアドレスが意図せず公開されるのを防ぐため、メールアドレスをダミーアドレスに切り替えます。また、過去のコミット履歴のメールアドレスも書き換えます。

コミット専用のダミーのメールアドレスを使う

GitHubの設定

メールアドレスをプライベートに設定することで、GitHubが生成したダミーのアドレスを使用可能になります。ダミーのアドレスは、自分のアカウントに関連付けられます。設定は、アカウントメニューの [Settings] - [Email] で [Keep my email addresses private] にチェックを入れます。[Block command line pushes that expose my email] にもチェックを入れるとベターでしょう。

GitHubのEmail設定画面(全体)の画像

Gitクライアントの設定

GitHubが生成したダミーのアドレスをセットします。local、global、systemは自分の環境に応じて設定してください。

$ git config --global user.name "foo bar"

$ git config --global user.email xxxxxxxx+foobar@users.noreply.github.com

コミット履歴のメールアドレスを全て書き換える

git filter-branchは現在非推奨となっており、git filter-repoを使うのが良いそうです。が、私はfilter-branchで作業してしまったので、その時のやり方で。filter-branchで書き換えた後、-fオプションを付けて強制プッシュします。複数人で作業しているリポジトリなどは十分に注意してください。その場合は、-fではなく--force-with-leaseの方が安全でしょう。

$ git filter-branch -f --env-filter "GIT_AUTHOR_NAME='foobar'; GIT_AUTHOR_EMAIL='xxxxxxxx+foobar@users.noreply.github.com'; GIT_COMMITTER_NAME='foobar'; GIT_COMMITTER_EMAIL='xxxxxxxx+foobar@users.noreply.github.com';" HEAD

$ git push -f origin main

参考にしたウェブページなど