Saat mengerjakan perbaikan atau fitur, saya terkadang tersandung masalah kecil lainnya yang dapat diperbaiki dengan cepat dalam hitungan detik. Ketika saya melakukannya dengan segera dan kemudian mengkomit fitur / perbaikan yang sudah selesai, komit mencakup lebih dari satu hal. Misalnya "add feature X and code clean up"
atau "fix bug X and improved logging"
. Akan lebih baik untuk membagi ini menjadi dua komitmen. Seandainya kedua perubahan terjadi pada file yang sama, saya tidak bisa begitu saja menambahkan satu file, melakukan, menambah yang lain dan kemudian melakukan lagi. Jadi saya melihat tiga opsi berikut:
Sengaja mengabaikan hal-hal yang tidak terkait saat mengerjakan sesuatu.
Salin file dengan dua perubahan, kembalikan, sertakan satu perubahan, komit, sertakan perubahan lainnya, komit lagi.
Jangan mengubah hal-hal kecil yang tidak terkait tetapi menambahkannya ke daftar todo dan melakukannya nanti.
Saya tidak terlalu menyukai ketiga opsi ini, karena alasan berikut:
Kualitas kode dapat menderita jika seseorang tidak memperbaiki masalah kecil. Dan saya merasa tidak enak jika secara sadar saya kehilangan kesempatan untuk memperbaiki sesuatu tanpa banyak usaha.
Ini meningkatkan pekerjaan manual dan rentan kesalahan.
Ini bagus untuk balita yang tidak terlalu kecil, tetapi menambahkan item kecil ke daftar todo dan mengunjungi kembali nanti sering kali lebih lama daripada hanya memperbaikinya dengan segera.
Bagaimana Anda menangani situasi seperti itu?
git add -p
banyak hal yang memungkinkan saya memilih bagian-bagian file yang ingin saya komit secara interaktif. Jika pembersihan cukup terpisah, ini mudah dilakukan. Jika pemisahan lebih sulit, saya melakukan state pada cabang sementara, kemudian secara manual menambahkan perubahan ke cabang saya yang sebenarnya sampai tidak ada perbedaan dengan cabang sementara. Ini membutuhkan lebih banyak pekerjaan, tetapi memungkinkan saya untuk memeriksa bahwa setiap komit bekerja dengan sendirinya.