pushしちゃったコミットのコメントを直す方法

結論。そのリポジトリは捨てて作り直そう。

方法。git filter-branchやgit rebase -i (のreword)などでコメントを変更することはできるけど、そうすると変更されたコメントの新しいコミットが作られるだけで古いコメントのコミットも残る。

この古いコメントのコミットは、新たに作るリポジトリにはコミットしないで、新しいコミットの方のブランチだけをコミットすればOK。

あと、新しいリポジトリに移行したいブランチはちゃんとローカルに作っておかないと、pushできないのでちゃんとbranchをローカルに作るべし。

$ git checkout 移行したいブランチ名

でoriginを削除

$ git remote rm origin

コメントの修正はfilter-branchが楽です。 ( http://www.clear-code.com/blog/2012/1/5.html で紹介されている例 )

$ git filter-branch --msg-filter 'sed -e "s/Merge.*internal.*\$/Merge/"' -f

で、ここで新しく作られたブランチと、古いブランチがちゃんと分かれていることを確認したら、それを新しいリポジトリに移行しよう。

まず新しいリポジトリを作る。
githubならadmin画面からdeleteして、もう一回同じ名前で作るのはアリ。
ただしチームのメンバーに同じ名前だけど別物だから気を付けてね、と話しておく必要がある。

次にoriginを再設定する

$ git remote add origin 新しいリポジトリのURL

移行したいブランチをpushしまくる

$ git push origin 移行したいブランチ名

それからタグ関係も一緒に移行できればいいんだけど、古いブランチの方に付けられているので、無理っぽい。
自分で新旧のコミットのコメントを読んで新しい方に手動でタグを貼るしかなさそう。

これで多分オッケーなはず。