GitHubに本来のアカウントとは別アカウントのユーザーままpushしてしまった時にコミットログを書き換える方法です。
今回私は個人利用のリポジトリで操作したので躊躇なくしましたが、もし仮に仕事等のアカウントでする際は細心の注意を払って行ってください。
過去のcommitのユーザーを修正する
git filter-branch -f --env-filter
"GIT_AUTHOR_NAME='<変更後の名前>';
GIT_AUTHOR_EMAIL='<変更後のメールアドレス>';
GIT_COMMITTER_NAME='<変更後の名前>';
GIT_COMMITTER_EMAIL='<変更後のメールアドレス>';"
<対象コミット>
<対象コミット>は全部もしくは範囲指定できる。
HEAD → 全部
HEAD~3..HEAD → 過去直近3コミット分
対象のAuthor名を指定して変更
git filter-branch --commit-filter '
if [ "$GIT_COMMITTER_NAME" = "<変更前の名前>" ]; then
GIT_AUTHOR_NAME="<変更後の名前>";
GIT_AUTHOR_EMAIL="<変更後のメールアドレス>";
GIT_COMMITTER_NAME="<変更後の名前>";
GIT_COMMITTER_EMAIL="<変更後のメールアドレス>";
git commit-tree "$@";
else
git commit-tree "$@";
fi' <対象コミット>
リモートにプッシュ
git log #問題ないか確認する
git push -f