概要
GitHubでは、コミットに使用したメールアドレスがコミット履歴から見えてしまいます。普段使用しているメールアドレスが意図せず公開されるのを防ぐため、メールアドレスをダミーアドレスに切り替えます。また、過去のコミット履歴のメールアドレスも書き換えます。
コミット専用のダミーのメールアドレスを使う
GitHubの設定
メールアドレスをプライベートに設定することで、GitHubが生成したダミーのアドレスを使用可能になります。ダミーのアドレスは、自分のアカウントに関連付けられます。設定は、アカウントメニューの [Settings] - [Email] で [Keep my email addresses private] にチェックを入れます。[Block command line pushes that expose my 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
参考にしたウェブページなど
- GitHubのメールアドレスが漏れる?コミット時のメールアドレスにnoreplyを設定 - メンチカツには醤油でしょ!!
- GitHubにホストされているGitからの個人情報流出を防ぐために - ツレヅレナルママニ
- GitHubのAuthorを全コミット変更したい。実際に使っているメールアドレスをコミットに使いたくない。 | ひま缶
- git-filter-repo - Qiita
- git-filter-repoを利用してGitからファイルを履歴も合わせて削除する - こんにちは寝る
- --force は有害だという考え; git の --force-with-lease を理解する | Atlassian Japan 公式ブログ | アトラシアン株式会社
- git push -f をやめて --force-with-lease を使おう - Qiita
- Git - git-filter-branch Documentation