git で過去を改ざんしてメルアドを変更した

Rebuild: 62 で出てきた話。
「git のコミットログでメルアドを変えたい」って問い合わせが GitHub によく来るらしい。
そのときはそんなことあるんだくらいに思ってたけど、ふと Windows 環境を見ると職場のメルアドが・・・。
Mac は問題なかったので油断してた。。


ということでコミットログを改ざんした。
参考にしたのは以下の記事。

git でメールアドレスやら名前やらを間違えて commit してしまったときの修正方法 - ..たれろぐ..
git でメールアドレスやら名前やらを間違えて commit してしまったときの修正方法 - flatlineの日記


記事中のワンライナーは一度やってみたところ、最初のコミットを変更できなかった。
結果、下の公式にあった方法で変更した。
(それにしても「最強のオプション: filter-branch」って厨二病っぽい言い回しだなあ)

Git - 歴史の書き換え より

git filter-branch --commit-filter '
        if [ "$GIT_AUTHOR_EMAIL" = "schacon@localhost" ];
        then
                GIT_AUTHOR_NAME="Scott Chacon";
                GIT_AUTHOR_EMAIL="schacon@example.com";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD


今回はプライベートのぼっちプロジェクトだったのでよかったけど、複数人で歴史の改ざんすると大変なことになるので、やらずに済むようにしたいものだ。


入門git

入門git