Git-akışının ele alması amaçlanan önemli bir husus, belirli bir dalın rolü ve neyin dallandığı ve birleştiği ile ilgili akıl yürütme yeteneği idi.
İdeal olarak, tüm dallar birleştirildikleri kodekle birleşir. Bu tipik olarak ana hattan bir birleşmedir (git-flow içinde budur dev
). Özel dallar dallanma ve birleştirme dev, dallar dal açma ve bir birleştirme ile dev birleştirme master
. Sıcak düzeltmeler, daldan ayrılır ve master'dan birleştirilir (bu ek birleştirme ile dev'e geri döner).
Her kodlayıcı, ana dalından dallanır ve bir araya gelir. Bir kodlayıcı gerektiğinde herhangi bir zamanda diğer kodlayıcılardan kod çekebilir .
Bir özellik dalındaki dal "Bir özellik dalındaki bir sorunu çözmenin bu yolunu keşfetmek istiyorum" ise - gayet iyi. Özellik dalından dallanır, bazı kodlar verir ve özellik dalına geri döner (veya atılır).
- özellikten dallanma
- fikri keşfet
- özellik birleştirmek
Ancak kaçınmak istediğiniz şey şuna benzeyen bir şey:
- İstenilen özellikten dallanma
- kod üzerinde çalışmak
- gerekli özellik tamamlandıktan sonra dev birleştirme
- özellik dalında işlevselliği (ve ek taahhütleri) doğrulayın
- dev ile birleştirmek
Bunun nedeni, başlangıç ve sonun eşleşmemesidir - bunun ne olduğunu ve ne olduğunu anlamak biraz zorlaştırır. İmkansız değil, ama birisinin rolünü anlaması biraz daha zaman alıyor.
Ancak, bu henüz dev'te bulunmayan koda bağlı yeni bir özellikse, akış şu şekilde olmalıdır:
- dev den şube
- istenen özellikten birleştirme
- kod üzerinde çalışmak
- gerekli özellik tamamlandıktan sonra dev birleştirme
- özellik dalında işlevselliği (ve ek taahhütleri) doğrulayın
- dev ile birleştirmek
Bunun dev'den bir dalla başladığını ve dev'den bir birleştirme ile sona erdiğini unutmayın.
Bütün bunlar, muhtemelen yapılacak en iyi şey bir özellikten diğerine bir birleşme yapmaktan kaçınmaktır. Özelliği dallayın, gerekli olan her şeyi yapın ... ve bekleyin.
- dev den şube
- kod üzerinde çalışmak
- gerekli özellik tamamlandıktan sonra dev birleştirme
- özellik dalında işlevselliği (ve ek taahhütleri) doğrulayın
- dev ile birleştirmek
Bu, en kararlı dal ve kod kümesini sağlar.
Gelecekteki çalışmalar için göz önünde bulundurulması gereken bir husus, uygulama kodu tamamlanmasa bile diğer özelliklerle birlikte çalışabilirlik için gerekli arayüzleri yayınlama özelliğine sahip olmak olacaktır. Bu, dev ile birleştirilecek ve daha sonra gerekli olan özellik, gelecekteki özellik gibi bu arayüzlerden de faydalanabilecektir. Bu, gelecekteki özelliğin ileriye doğru ilerlemesine izin verecektir (arayüzlere karşı kodlama, arayüzleri uygulayan saplamalara karşı test etme), gerekli özelliğin bir araya gelmesi için beklemek zorunda kaldığından daha fazla ilerlemesine izin verecektir.