Bir düzeltme veya özellik üzerinde çalışırken, bazen birkaç saniye içerisinde anında iyileştirilebilecek diğer küçük sorunların üstesinden gelebilirim. Bunları hemen yapıp bitmiş özelliği / düzeltmeyi yerine getirdiğimde, taahhüt birden fazla şeyi içeriyor. Örneğin "add feature X and code clean up"
veya "fix bug X and improved logging"
. Bunu ikiye bölmek daha iyi olur. İki değişikliğin aynı dosyada gerçekleşmesi durumunda, sadece bir dosya ekleyemem, işleme koyamam, diğerine ekleyemem ve sonra tekrar işleme koyamam. Bu yüzden aşağıdaki üç seçeneği görüyorum:
Bir şey üzerinde çalışırken kasıtlı olmayan şeyleri kasten göz ardı edin.
Dosyayı iki değişiklikle kopyalayın, geri alın, bir değişiklik ekleyin, kesinleştirin, diğer değişikliği ekleyin, tekrar kesinleştirin.
Küçük, ilgisiz şeyleri değiştirmeyin, bunları yapılacaklar listesine ekleyin ve daha sonra yapın.
Aşağıdaki nedenlerden dolayı bu üç seçeneğin hepsini gerçekten sevmiyorum:
Küçük problemleri çözmezse kod kalitesi düşebilir. Ve çok fazla çaba harcamadan bir şeyi geliştirme şansını bilinçli olarak kaçırırsam, kendimi kötü hissediyorum.
Bu manuel çalışmayı arttırır ve hataya açıktır.
Bu çok küçük olmayan todoslar için iyidir, ancak yapılacaklar listesine küçük bir öğe eklemek ve daha sonra tekrar ziyaret etmek, onu derhal düzeltmekten çok daha uzun sürer.
Bu gibi durumları nasıl ele alıyorsunuz?
git add -p
Etkilemek istediğim dosyaların parçalarını etkileşimli olarak seçmeme izin veren çok şey kullanıyorum . Temizliğin yeterince ayrı olması durumunda bunun yapılması kolaydır. Ayrılma daha zorsa, durumu geçici bir dalda kabul ediyorum, daha sonra değişiklikleri geçici dalda bir fark oluşmayacak şekilde eldeki dalıma el ile ekle. Bu, çok daha fazla iş gerektirir, ancak her işin kendi kendine işlediğini kontrol etmeme izin veriyor.