Yanıtlar:
Sürüm kontrol araçları, kişinin hangi dosyaların değiştirildiğini ve hangi yöntemlerin eklendiğini görmesine izin verecek kadar güçlüdür. Genel olarak, zaten var olanı doğrudan kopyalayan günlük mesajlarının, günlüğü kirlettiği anlamına gelir.
somefunc
Bir gereksinimi yerine getirmek için yöntem eklediniz , yani:
Bu, günlük mesajlarınızın hangi özelliklerin / hataların etkilendiğini veya yeniden yapılanmanın amacının ne olduğunu açıklamak zorunda olduğu anlamına gelir.
BİLET / SAYI SAYISI eklemeyi unutmayın .
Bilet # veya sorun # ile herhangi bir özelliğiniz veya sorun takip sisteminiz varsa , söz konusu kimliği # taahhüt altına aldığınızdan emin olun. Bu, üzerinde çalıştığınız özellik veya sorun hakkında daha fazla bilgi edinmek isteyen herkese yardımcı olacaktır.
Son projemde, yorumun ilk 7 hanesinin açık bir sorgudan (sayı / özellik izleme sistemimiz) geçerli bir sayı olduğundan emin olmak için geliştirilen bir makro vardı.
Bu tür şeyler yapıyorum, örneğin birden fazla dosyada değişiklik yapılması gereken bir hatayı düzeltmek için. Bu, değişiklik setindeki ayrı dosyalara bakmadan gerçekte neyin değiştiğini söylemenizi biraz kolaylaştırır.
Tek dosya değişiklik kümeleri için bu gerekli değildir.
İlk satır, kusur veya kullanıcı öyküsüne bir bağlantı gibi, her zaman değişiklik kümesinin üst düzey bir açıklamasıdır.
Taahhüt mesajının anlatımında ilgili bilgiler ise, evet, onu ekleyin. Bilginin tek biti dosya adının kendisi ise, hayır.
Örneğin bu mantıklı: "build_foo () işlevini fooutil.c'den foobase.c'ye taşıdı, çünkü build_foo () işlevini kullanmak isteyen çoğu program zaten foobase.c'yi içeriyor"
Bu değil: "Bir bar parametresi almak için fooutil.c içindeki build_foo () güncellendi."
Buraya farklı bir bakış açısı eklemek istiyorum.
Cevabım Evet Veya Hayır. Ama Genel olarak Evet diyebilirim.
Sürüm kontrolü gerçekten hangi dosyanın güncellenmekte olduğunu bilecek kadar güçlü. Ama ne zaman yaparız
$ git log
Sadece taahhüt mesajını görüyoruz. Çoğu insan böyle yapar.
Kütüğün içine bakarak. Ek bağlam içeriyor. Örneğin:
readme.md: Fix typo detected by language tool
Daha iyi
Fix typo detected by language tool
Bununla birlikte, değişiklikler birden fazla dosya oluşturursa, en azından düzenlenmekte olan bileşenden bahsedin.
API: Fix reset password not sent email to user
Bunu okuyarak, düzeltilen hatanın API bileşeninde olduğunu ve muhtemelen kod tabanında API dizini altında olduğunu biliyoruz.
Ancak yapabiliriz
$ git show COMMIT_ID --name-only
ancak sadece dosyaları almak için daha fazla adım ekler.
Bence asıl soru, taahhütlerinizin kapsamı açısından ne kadar sınırlı olduğu? Bir ilişkide çeşitli ilişkili olmayan değişiklikleri bir araya getirmeyi beklerseniz, hangi dosyaların hangi amaçla değiştirildiğini belirtme gereksinimi duyabilirsiniz.
Bununla birlikte, sadece daha dar bir taahhütte bulunursanız, o zaman tek bir taahhüt size hangi dosyaların değiştirildiğini ve mesajdaki amacın ne olduğunu açıklayabilecektir.
Daha fazla taahhüt, daha sık Mesajlarında bu kadar ayrıntılı olmaktan kaçınmanın yolu budur.