過去の 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
し直してみれば、ちゃんと消せていることが分かる。