Git ファイル操作のやり直し/取り消し

状況

git mv したつもりが mv していて、しかもその後編集して commit してしまった。
A -> B -> B' -> B'' 的な感じ。
B''のヒストリをたどると A にさかのぼれなくて困ってしまった。

解決法

B までさかのぼって、 git mv.
具体的には

git rebase -i HEAD~2
mv B A
git mv A B
git commit --amend
git rebase --continue