Git で過去の commit の Author を書き換える
git-log
を見ていたらメールアドレスを間違えていたのに気づいたので、何とか書き換えられないかと試行錯誤してみた。
その結果、git-format-patch
でパッチ作って sed
とかで書き換えた後、git-am
で取り込み直せば Author を書き換えられることが分かった。なお、最初の commit については、git-show
の出力をメール形式に書き換えて(From
と Subject
あたり)使えば何とかなる。
……というような記事を書こうとしたら、以下のような記事を見付けた。
Pro Git - Pro Git 6.4 Git Tools Rewriting Historyによると、git-filter-branchを使うと良いらしい。ということで、次のようなコマンドを実行してみた。*3また、名前だけでなくemailも古かったので、ついでに変更した。
$ git filter-branch --commit-filter ' GIT_AUTHOR_NAME="idesaku" GIT_AUTHOR_EMAIL="(メールアドレス)" GIT_COMMITTER_NAME="idesaku" GIT_COMMITTER_EMAIL="(メールアドレス)" git commit-tree "$@" ' HEADGitのCommit中のAuthor名およびCommitter名を変える - idesaku blog
git-filter-branch
なんてのがあったのか……。
http://progit.org は一度きちんと読まないといけないなあ。