Pada akhirnya terserah Anda dan orang-orang yang bekerja dengan atau untuk Anda, karena git tidak memaksakan aturan apa pun.
Praktik saya adalah menghindari komitmen yang sengaja membuat sistem jauh lebih buruk. Setiap komit harus berupa refactoring atau menerapkan beberapa persyaratan. Jika saya membuat komitmen yang buruk dan menemukannya sebelum saya mendorongnya maka saya akan mengubah atau mengganti untuk menghapusnya dari sejarah.
Saya pikir ini membuatnya lebih mudah untuk membaca log git dalam permintaan tarik, karena setiap komit harus berdiri sendiri sebagai refactoring atau implementasi dari beberapa persyaratan. Menambahkan kode mati yang akan dihidupkan kembali dalam waktu dekat akan dihitung sebagai refactoring. Ini adalah 'potongan logis' saya.
Anda masih bisa fleksibel dengan bagaimana Anda menyusun komitmen Anda. Misalnya, Anda dapat menulis tes di awal tetapi menandai semuanya sebagai dilewati di komit pertama, sehingga suite pengujian Anda tidak melaporkan kegagalan, dan kemudian lewati tes ketika implementasi dilakukan.