別ユーザでgithubにpushしたコミットログを書き換える方法です。
一括変換
$ git filter-branch -f --env-filter \
"GIT_AUTHOR_NAME='<変更後の名前>'; \
GIT_AUTHOR_EMAIL='<変更後のメールアドレス>'; \
GIT_COMMITTER_NAME='<変更後の名前>'; \
GIT_COMMITTER_EMAIL='<変更後のメールアドレス>';" \
<対象コミット>
<対象コミット>は全部もしくは範囲指定できます。
・HEAD → 全部
・HEAD~3..HEAD → 過去直近3コミット分
Author名指定
特定の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' <対象コミット>
GitHubに反映
上のコマンドで変更したら、以下のコマンドでGitHubに反映させます。
$ git push -f xxx yyy