過去の Git コミットのコミッタを変更するには
ある Git リポジトリを git clone して、黙々と作業を進めていたのだが、途中でコミッタを間違えていることに気付いた。この Git リポジトリで使うべき user.name と user.email を指定し忘れたまま、異なるユーザでコミットしてしまっていた。
今回はたまたま作ったばかりの Git リポジトリなので、以下の記事にあったコマンドを利用して一括修正できた。
git filter-branch -f --env-filter \
"GIT_AUTHOR_NAME='new'; \
GIT_AUTHOR_EMAIL='new@example.com'; \
GIT_COMMITTER_NAME='new'; \
GIT_COMMITTER_EMAIL='new@example.com';" \
HEAD
'new' 部分をコミッタの user.name、'new@example' 部分を user.email に変更すれば良い。
変更後、git log --pretty=full などで確認して、コミッタが変わっていれば OK。
なお、この状態で tig --all すると、修正前のコミッタの名前でのコミットログが見えたりするが、心配無用。どうやら .git/ ディレクトリ内にローカルのデータが残ってるだけみたいなので、git push --force したリポジトリを新たに git clone し直してみれば、ちゃんと消せていることが分かる。