Sorunuzu cevaplamayı düşünüyorum, önce çatışmaların neden olduğunu ve birleşmenin gerçek anlamı ve süreci nedir?
Çatışmalar yalnızca iki veya daha fazla geliştirici aynı dosya üzerinde aynı anda çalışıyorsa ve her ikisi de check-in yapmaya çalıştığında ortaya çıkar. İlk geliştirici elbette herhangi bir çakışma almayacaktır. Ama ikincisi (üçüncü, dördüncü vb.) Çatışmalar yaşayacaktı. Neden, çünkü sunucuda varolan koddan kısmen veya tamamen farklı bazı kodlar var.
Bu doğada ikinci geliştiricinin ilk geliştiriciden farklı bir şey olduğu anlamına gelir. Bu fark kullanmak gibi, stil değişebilir new UserManager().GetUserName()
yerine UserManager userManager = new UserManager(); userManager.GetUserName();
her iki geliştiriciler onu geliştirmek için kodu yeniden nasıl farklı fikirleri vardı demek olduğunu Bahsettiğiniz düzeyine kadar.
Öte yandan birleştirme, geliştiricilerin kodlarını çakışmaları dikkate almadan check-in yapabileceği anlamına gelmez. Bunlar gerektiği ve gereken o çelişkilere çözüm. Çakışmalar önemli değilse, check-in yapabilir ve önceki kodu geçersiz kılabilir. Ancak tamamen farklı bir şey gördüklerinde, önceki geliştiriciyi aramalı ve onunla konuşmalıdırlar, böylece her ikisi de en iyi çözümü kontrol etmek için birlikte koordine edilebilirler.
Örneğin, iki geliştiriciden çevrimiçi ödeme kütüphanesini geliştirmelerini ve işlerinin çakışmasını istiyorsanız , bu en azından bazı yerlerde 2 farklı çözüm olduğu anlamına gelir. Bu nedenle, bu çözümlerden biri hakkında konuşulmalı ve daha iyi bir çözüm olarak kabul edilmelidir.
Teorik olmaktan daha gerçek olma eğiliminde olmamız gerektiğinden, bu koşulları önlemeye katılmıyorum . Bazen bir adam CSS'de gerçekten iyi, bir diğeri ASP.NET Markup'ta gerçekten iyidir. Ancak, her ikisi de giriş sayfası üzerinde çalışacak şekilde çalışması gerektiğinde çakışabilir. Yani, gerçek (ideal değil) düşünürsek, bu fenomenin (çatışma) birçok kez gerçekleştiğini görebiliriz.
Bahsetmek istediğim bir diğer nokta da, check-in işleminizde size yardımcı olacak araçlar kullanmak. Bu araçlar genellikle sunucu kodu ve geliştirici kodu arasındaki farkı görselleştirir ve hangi parçanın iade edileceğini belirlemede çok yardımcı olur.