What is "good commit" that is aware of the change unit in #git? In a nutshell, it's detachable. In other words, it is a well-made time machine.
- 自分や他の人が、思うような変更差分に戻りやすく、一つの状態で動作を再現しやすい
- rebase などをしてコミット同士の順序を入れ替えても、コンフリクトあるいは手に負えないコンフリクトが起きにくい
- どのコミットの状態をとっても、動作不可能なものや、テストに落ちるものがなく、実装とテストが一体になっている
- rebase などでコミットを削除しやすく、削除してもコンフリクトが起きにくい
- cherry-pick で他のブランチに持って行きやすい
- Github などの Pull Request でコミット単位でのレビューがしやすい
- 二個以上のブランチで同じコミットを共有しやすい、共有しても問題が起こりにくい
色々と書いたが、一言「着脱自由」にまとめられる。
つまりよく出来たタイムマシーンだ!
Original by Github issue
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。