Repoyu geliştiricinin yerel makinesine klonlamak zaten bir çeşit çatal. Her geliştirici depoyu GitHub'a çatallarsa, bu yalnızca geçerli çalışma durumunu yayınlamaya yarar.
Bu, merkezi bir master repo olduğunda ve bu repoya doğrudan erişimle güvenilmeyen birçok katılımcı olduğunda uygun olabilir. Bu, herkesin katkıda bulunabileceği ve daha sonra bir grup çekirdek koruyucusu tarafından gözden geçirilip birleştirilebilen açık kaynaklı projeler için harika çalışıyor. Birden çok depo kullanmak, çekme isteği tabanlı bir iş akışını zorlar.
Küçük, güvenilir bir ekipte bu gerekli değildir. Farklı kişilerin birbirlerinin yoluna girmesini önlemek için Git Akışı gibi bir strateji izlenebilir: Her küçük özellik ayrı bir özellik dalında uygulanır. Özellik tamamlandığında, ana dalla birleştirilir. Çoğu takım bunu bir çekme isteği veya kod incelemesi ile birleştirir, ancak uygunsa bunu atlayacak kadar güvenilirdir. Ayrı depolar, bir geliştiricinin mevcut durumunu çatallı ancak takım tarafından görülebilir depolarında yayınlamasına yol açarken, tek bir ortak repoda değişikliklerini ayrı bir özellik dalına zorlarlardı. Master / trunk'taki tüm geliştirme işlemlerinin çoğu iş akışında önerilmez.
Aradaki fark, yalnızca erişim yönetimi ile ilgilidir ve uygulanan iş akışı ile ilgili değildir. Her iki kurulumda da çekme isteği tabanlı iş akışları yapabilirsiniz. Ham bir Git açısından bakıldığında, bir çatal ve bir dal arasında çok fazla fark yoktur - her iki yaklaşım da esasen projenin geçmişini paylaşır ve diğer dalları / çatalları etkilemeden taahhütlerin eklenmesine izin verir. Bu göz önüne alındığında, güvenilir, kapalı bir gruptayken tek bir repo paylaşmak çok daha iyi olur.