ฉันคิดว่าจะตอบคำถามของคุณก่อนอื่นเราต้องดูว่าทำไมความขัดแย้งจึงเกิดขึ้นและอะไรคือความหมายที่แท้จริงและกระบวนการรวมกัน?
ความขัดแย้งเกิดขึ้นเฉพาะเมื่อสองคนหรือมากกว่านักพัฒนากำลังทำงานบนไฟล์เดียวกันในเวลาเดียวกันและจากนั้นพวกเขาทั้งสองพยายามที่จะตรวจสอบใน. นักพัฒนาครั้งแรกจะไม่ได้รับความขัดแย้งใด ๆ แน่นอน แต่ข้อที่สอง (ข้อสามข้อสี่เป็นต้น) จะได้รับความขัดแย้ง ทำไมเพราะเขามีรหัสบางส่วนซึ่งบางส่วนหรือทั้งหมดแตกต่างจากรหัสที่มีอยู่บนเซิร์ฟเวอร์
ในลักษณะนี้หมายความว่าผู้พัฒนารายที่สองมีบางสิ่งในใจที่แตกต่างจากผู้พัฒนารายแรก ความแตกต่างนี้อาจแตกต่างกันไปจากการใส่สไตล์เช่นการใช้งานnew UserManager().GetUserName()
แทนการใช้UserManager userManager = new UserManager(); userManager.GetUserName();
งานจนถึงระดับที่คุณกล่าวถึงซึ่งหมายความว่านักพัฒนาทั้งสองมีแนวคิดที่แตกต่างกันในการปรับเปลี่ยนรหัสเพื่อปรับปรุง
ในทางกลับกันการผสานไม่ได้หมายความว่านักพัฒนาซอฟต์แวร์สามารถเช็คอินโค้ดของพวกเขาได้โดยไม่พิจารณาถึงความขัดแย้ง พวกเขาควรและต้องจัดการกับความขัดแย้งเหล่านั้น หากความขัดแย้งไม่สำคัญพวกเขาอาจเช็คอินและแทนที่รหัสก่อนหน้า แต่เมื่อพวกเขาเห็นสิ่งที่แตกต่างอย่างสิ้นเชิงพวกเขาควรโทรหาผู้พัฒนาก่อนหน้านี้และพูดคุยกับเขาเพื่อที่พวกเขาจะได้ประสานงานกันเพื่อเช็คอินทางออกที่ดีที่สุด
ตัวอย่างเช่นหากคุณขอให้นักพัฒนาสองคนปรับปรุงห้องสมุดการชำระเงินออนไลน์และการทับซ้อนการทำงานของพวกเขานั่นหมายความว่าอย่างน้อยในบางสถานที่มีวิธีแก้ไขปัญหาที่แตกต่างกันสองแบบ ดังนั้นหนึ่งในโซลูชั่นเหล่านั้นควรได้รับการพูดคุยและเป็นที่ยอมรับดังนั้นการเช็คอินจึงเป็นทางออกที่ดีกว่า
ฉันไม่เห็นด้วยกับการป้องกันสถานการณ์เหล่านี้เนื่องจากเราควรมีแนวโน้มที่จะเป็นจริงมากกว่าทางทฤษฎี บางครั้งผู้ชายก็เก่ง CSS จริงๆในขณะที่อีกคนเก่ง ASP.NET ASP.NET แต่งานของพวกเขาอาจขัดแย้งกันเมื่อพวกเขาควรทำงานบนหน้าเข้าสู่ระบบเพื่อให้มันทำงาน ฉันหมายถึงถ้าเราคิดว่าจริง (ไม่เหมาะ) เราจะเห็นว่าปรากฏการณ์นี้ (ความขัดแย้ง) เกิดขึ้นหลายครั้ง
อีกจุดที่ฉันอยากพูดถึงคือการใช้เครื่องมือเพื่อช่วยคุณในกระบวนการเช็คอินของคุณ เครื่องมือเหล่านี้มักจะเห็นภาพความแตกต่างของรหัสเซิร์ฟเวอร์และรหัสนักพัฒนาซอฟต์แวร์และช่วยในการกำหนดส่วนที่ควรเช็คอิน