ตามเวลาที่ฉันพร้อมที่จะผสานสาขาของฉันกลับไปสู่การพัฒนา (เน้นที่เหมือง)
การจัดการความขัดแย้งในมักจะง่ายกว่าในgit merge
git rebase
ในการผสาน Git คุณสามารถดูรายการไฟล์ทั้งหมดที่ถูกแก้ไขในครั้งเดียว ไม่ว่ากี่กระทำได้รับการทำโดยเพื่อนร่วมงานอื่น ๆ ที่คุณจะต้องผสานครั้งเดียว ด้วยเวิร์กโฟลว์การรีบูตคุณอาจได้รับความขัดแย้งแบบเดียวกันซ้ำแล้วซ้ำอีกและต้องทบทวนด้วยตนเอง คุณสามารถท้ายการแก้ไขที่ 13 กระทำและความรู้สึกเหมือนคุณไม่สามารถมองเห็นแสงออกมาจากอุโมงค์
จากประสบการณ์ของฉันเมื่อฉันพยายามที่จะแก้ไขข้อขัดแย้งในการปฏิเสธซ้ำ ๆ อย่างไร้ความปราณีฉันก็สิ้นสุดการสูญเสียการแก้ไขของใครบางคนหรือกับแอปพลิเคชันที่ไม่ได้รวบรวม บ่อยครั้งที่ฉันและเพื่อนร่วมงานทำงานหลายอย่าง แต่กลับกลายเป็นอย่างมากด้วยความซับซ้อนของความขัดแย้งที่เกิดซ้ำซึ่งเราต้องยกเลิกและสูญเสียงานก่อนหน้านี้หลังจากที่มีการคืนเงินจำนวนหนึ่ง
ฉันจะแนะนำเทคนิคต่าง ๆ ให้คุณ แต่พวกเขาสามารถช่วยให้การผสานง่ายขึ้นกว่าการทำงานให้เป็นอัตโนมัติ
- ทรัพยากร / ไฟล์ภาษา ถ้าคุณมีสารเติมแต่งเปลี่ยนแปลงแฟ้มทรัพยากรให้แน่ใจว่าคุณมักจะย้ายไปยังจุดสิ้นสุดของแฟ้มเพื่อให้คุณสามารถจำของคุณเปลี่ยนแปลงเมื่อเทียบกับคนอื่น ๆการเปลี่ยนแปลง " คุณสามารถคัดลอกและวางการเปลี่ยนแปลงของคุณที่ด้านล่างหรือเพียงแค่ลบเครื่องหมายความขัดแย้ง
- ทำ. ไม่. อย่าง ฟอร์แมตใหม่ ทั้งคุณและเพื่อนนักพัฒนาของคุณจะไม่ทำการ "ฟอร์แมตโค้ดขนาดใหญ่" ในระหว่างการทำงานประจำวัน การจัดรูปแบบรหัสเพิ่มจำนวนของผลบวกที่ผิดพลาดมากเกินไปในการจัดการความขัดแย้ง สามารถทำการฟอร์แมตโค้ดใหม่ได้
- เพิ่มขึ้นเช่นโดยนักพัฒนาทุกคนในทุกการกระทำทันทีที่พวกเขาใช้เครื่องมืออัตโนมัติ (เช่น Eclipse มีตัวเลือกในการฟอร์แมตการบันทึก Vanilla Visual Studio ไม่มี) นักพัฒนาซอฟต์แวร์ทุกคนจะต้องใช้มาตรฐานการจัดรูปแบบรหัสเดียวกันโดยเขียนเป็นไฟล์รูปแบบที่ IDE ของคุณกิน เพื่อให้ความคิดแก่คุณถ้ามันเป็น 4 ช่องว่างหรือ 2 แท็บมันไม่สำคัญ แต่มันสำคัญจริงๆถ้าทุกคนใช้เหมือนกัน
- ก่อนปล่อยโดยหัวหน้าทีม หากมีการกระทำ "การปรับรูปแบบรหัส" เกิดขึ้นเมื่อคนไม่ทำงานในสาขาเช่นก่อนที่จะแยกสาขาสิ่งต่าง ๆ จะทำให้ง่ายขึ้น
- ตรวจสอบการแยกงานระหว่างเพื่อนร่วมงาน อันนี้เป็นส่วนที่วิศวกรรมส่วนใหญ่มา ดังที่คำตอบอื่น ๆ มันเป็นกลิ่นการออกแบบหากนักพัฒนาหลายคนทำงานที่แตกต่างกันต้องสัมผัสทรัพยากรเดียวกัน คุณอาจต้องพูดคุยกับหัวหน้าทีมของคุณเกี่ยวกับส่วนที่จะแก้ไขโดยผู้พัฒนาพร้อมกันแต่ละคน
ฉันเคยเห็นนิสัยที่ไม่ดีในเวิร์กโฟลว์ Git ในทีมของฉันด้วย บ่อยครั้งที่ผู้คน overcommit ไปยังสาขาของพวกเขา ฉันเห็นผู้พัฒนาเป็นการส่วนตัวเพิ่ม 10 ถึง 20 คอมมิทที่ระบุว่า "แก้ไข" แต่ละบรรทัดที่ทำหนึ่งหรือสองบรรทัด นโยบายของเราคือความมุ่งมั่นนั้นมีป้ายกำกับด้วยบัตร JIRA เพื่อให้ความคิดแก่คุณ
@JacobRobbins แนะนำให้git rebase
ทำงานประจำวัน ฉันต้องการผลักดันวิธีการของเขาไปข้างหน้า
ก่อนอื่นใช้ rebase เพียงครั้งเดียวเพื่อลดจำนวนการกระทำให้น้อยลง และ rebase เฉพาะกับสาขาพัฒนาดั้งเดิมซึ่งเป็นความมุ่งมั่นที่คุณได้แยกจาก เมื่อฉันพูดว่ากำมือฉันอาจหมายถึง 3 หรือ 4 (เช่นส่วนหน้าทั้งหมดปลายด้านหลังทั้งหมดแผ่นฐานข้อมูลทั้งหมด) หรือตัวเลขที่สมเหตุสมผล หลังจากที่คุณได้รวมพวกเขาใช้fetch
และทำงาน rebase ของคุณผ่านสาขาต้นน้ำ สิ่งนี้จะไม่ช่วยคุณให้รอดพ้นจากความขัดแย้งเว้นแต่ทีมของคุณจะทบทวนแนวทางของตัวเอง แต่จะทำให้ชีวิตของคุณเจ็บปวดน้อยลง
หากคุณมีคำถามเพิ่มเติมเกี่ยวกับงานเฉพาะอย่าลังเลที่จะค้นหาและถามใน Stackoverflow
[แก้ไข] เกี่ยวกับกฎการไม่ปฏิรูปและลูกเสือ ฉันจัดรูปแบบ RE reworded เล็กน้อยเพื่อเน้นว่าสิ่งที่ฉันหมายถึงคืองานการจัดรูปแบบตั้งแต่เริ่มต้นไฟล์ต้นฉบับทั้งหมดรวมถึงโค้ดที่คุณไม่ได้สัมผัส ตรงกันข้ามกับการจัดรูปแบบโค้ดของคุณซึ่งเป็นนักพัฒนาลูกเสือซึ่งเป็นนักพัฒนาจำนวนมากรวมถึงตัวผมเองใช้ในการฟอร์แมตไฟล์ทั้งหมดด้วยความสามารถของ IDE เมื่อผู้อื่นสัมผัสไฟล์แม้ว่าเส้นที่ได้รับผลกระทบจะไม่เปลี่ยนแปลงในเนื้อหาและความหมาย Git จะเห็นว่าไฟล์นั้นเป็นความขัดแย้ง ตัวแก้ไขภาษาที่ทรงพลังเท่านั้นที่สามารถแนะนำได้ว่าความขัดแย้งนั้นเกี่ยวข้องกับการจัดรูปแบบและรวมส่วนที่จัดรูปแบบที่ดีที่สุดโดยอัตโนมัติ แต่ฉันไม่มีหลักฐานของเครื่องมือดังกล่าว
ท้ายที่สุดกฎลูกเสือไม่ได้บังคับให้คุณทำความสะอาดความยุ่งเหยิงของคนอื่น เพียงแค่คุณ