よく「トピックブランチにおけるコミットは、トピックに関連した内容のみ、論理的単位で小さく作れ」といわれますが、実際にコードを書いているときは最初から完璧だと思える一連のコミットをつくり上げるのは非常に困難です。 たとえば、「あー、この変更はさっきのコミットに含めておくべきだったな」とか。 Gitの場合あとから rebase -i で表示されるTODOリストの順番を並べ替えたうえ、squashやfixupを指定すれば、前のコミットに融合できますが、コミットの時点でfixup先のコミットがわかっている場合、autosquashを使うと、その作業を半自動化できます。 たとえば % git log --oneline master.. 4ce35ee 新機能: ほげほげを追加 40a7ef4 ほげほげ機能追加のための準備 のように2つのコミットがあった場合、マージ前にレビューしたところ、40a7e