細かいコミットは、どこへ消えたのか

細かいコミットを、胸を張れる1つに畳む
細かいコミットを、胸を張れる1つに畳む

squash したあと git log をのぞくと、ちょっとドキッとする。main にあるのは、まとめられた1つのコミットだけ。「あれ、作業が消えた?」初めての squash で思わずログを二度見するのは、みんな通る道だ。

安心してほしい、変更は1つのコミットの中にちゃんと入っている。squash は合流ではなく、細かいコミットの「最終結果」だけを取り出して、まっさらな1コミットを作り直す操作。だから親は1つ、マージコミットですらない。

これはGitHubの「Squash and merge」ボタンの正体だ。作業中は wip でも fix typo でも好きにコミットしていい。レビューが終わったら squash で畳んで、胸を張れる1コミットにする。試行錯誤はあなたの中に、チームの履歴はすっきりと。