MagitのRewritingがよく分からなかったので、色々触っていたらなんとなく理解したけどgit rebase -iとどこが違うんだろう?
ちなみに、M-x magit-statusを毎度叩くのも飽きたのでC-x gに割り当てました。
(global-set-key (kbd "C-x g") 'magit-status)
Rewritingの使い方
まずはl lでログリストを出して、修正の起点のコミットログでr b(begin)を押す。
すると、magit-statusでそれ以降のコミットログがpendingされたコミットになっているので、修正したい順番にAを押していく。きちんとコミットされるとpendingのステータスが*(未使用)から.(使用済み)に変わる。r .とかr *でも状態変更はできる。
これはgit rebase -iでコミットログの順番を変えるのとほとんど一緒だと思う。
まとめてコミットしたい場合はaをつかえばいいんだけど、コンフリクトしたりしてなんか挙動がいまいち掴みきれていない。
最初の方はなかなか思い通りにいかなくて最初からやり直したいことが多いが、そういう場合に破棄するのはr a(abort)でOK。
慣れるまではcloneしてテスト用のリポジトリで作業してみて、OKだったらもとのリポジトリで修正すんのがいいのかもしれない。
Reflogの使い方
l hでReflogが出るのでAを押すとコミットが取り込まれる。