DRYな備忘録

Don't Repeat Yourself.

過去のcommitのAuthorを書き換える【git】【commit】【filter】

本家github.comのプロジェクトに、間違えて会社の名前・アドレスでコミットしちゃうことがよくある(よくはない)。

会社のプロジェクトの中でOSS触るときとか、会社のPCでgithub.comのプロジェクト更新したいときとか。

普通に本名と会社のメールアドレスが残っちゃったりしてマジ焦る。

過去、"本名"でコミットしたもののAuthor情報を全て"ニックネーム"に書き換えたい!

解決

いつも忘れるのでメモ。ここ http://blog.glidenote.com/blog/2012/07/25/git-filter-branch/

git filter-branch --commit-filter '
        if [ "$GIT_AUTHOR_NAME" = "Ochiai" ];
        then
                GIT_AUTHOR_NAME="otiai10";
                GIT_AUTHOR_EMAIL="otiai10@gmail.com";
                GIT_COMMITTER_NAME="otiai10";
                GIT_COMMITTER_EMAIL="otiai10@gmail.com";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD

このシェルスクリプトを実行すればおk

DRY(まじで)

memo

yaakaitoいわく、どっちかっというと本家github.comのメアドで会社にコミットしちゃった場合の方がダメージ小さいので、git configでデフォルトでは本家github.comで使ってるニックネームとメアドにしといたほうがいい、とのこと

入門git

入門git