ฉันต้องการเปิดการประชาสัมพันธ์ในแบรนซ์ชื่อ feature-b
นั่นไม่นานจะเป็นผนวกรวมแล้วต้อง main
. อย่างไรก็ตามฉันเขียนมันเพื่อสนับสนุนของฉัน feature-a
แบรนซ์ซึ่งมีต่อเนื่อง ฉันต้องการจะทำต่อไปหรือไม่ทำงาน feature-a
และข้อต่อรองที่ทำงานฉันทำอยู่ feature-b
ก่อนที่มันจะถูกรวมเข้าด้วไป main
.
อะไรคือหนทางที่ดีที่สุดที่ฉันทำอย่างนี้เหรอ? เรา merges ต้อง main
เป็น squashed ดังนั้นทุก commits บ feature-b
จะ rewritten เป็นเดี่ยวก่อตอนที่มันจะถูกรวม main
. ดังนั้น rebasing feature-a
บ feature-b
ตอนนี้จะมีในอนาคตความขัดแย้งเจ็บปวดตอนที่ฉัผนวกรวม feature-a
ต้อง main
เพราะเหมือนกัเปลี่ยนแปลงจะถูกทำในในต่างออก commits.
อะไรคือวิธีที่ดีที่สุดสำหรับฉันที่จะรวมถึงการเปลี่ยนแปลงทำอยู่ feature-b
ในของฉัน feature-a
ระหว่างที่แบรนซ์ minimizing ความเจ็บปวดตอนที่ผมในที่สุดผนวกรวม feature-a
ต้อง main
?
ปรับปรุง
ฉันไปต่อแล้ว:
- Rebased
feature-a
บfeature-b
- ทำให้มากกเปลี่ยนแปลง(เฉพาะ 1 ก่อไป
feature-a
แต่มันไม่มีอย่างไรก็ตามผมfeature-b
ถูกตรวจส - สควอช์-ผนวกรวมแล้ว
feature-b
ครั้งนึงมันเป็นรับการรับรอง(ไม่มีการเปลี่ยนแปลต้องการดังนั้นfeature-a
แล้วมีส่วนผสมที่แน่นอนรหัสที่ถูกรวม) - ดึงล่าสุด
main
และ rebasedfeature-a
อยู่บนสุดของมัน
ที่กลัว,git กจะบ่นว่าทุกๆเรื่องหลายแฟ้มเป็น"ทั้งสองแก้ไข"หรือ"ทั้งสองเพิ่มแล้ว". คนเดียวออกจะน่ารำคาญแต่งง่ายที่จะจัดการกับมัน อะไรที่ทำให้มันเหลือเชื่อสับสน-โดยเฉพาะอย่างยิ่งถ้าผ่านช่วงเวลาผ่านไปผมอยู่และนั่นคือสิ่งที่ผนวกรวมความคิดเห็นในแฟ้มนั่นนะ
ถึงแม้ว่าทั้งสอง main
แล้ว feature-a
หน่วยมีคน เดียวกันกับรหัส อยู่ในแฟ้มทั้งหมด,ฉันเข้าใจโคตรน่ารำคาญพฤติกรรม:
- สำหรับคำว่า"ทั้งสองถูกเพิ่ม"แฟ้ม,ผนวกรวมความคิดเห็นเป็นการเพิ่มสำหรับ"หัว(ปัจจุบันเปลี่ยน)"และ"พ่อแม่ของ#ค่อยจัดการเรื่อง(ก่อกข้อความ)". ฉันบังคับให้เลือกหนึ่งหรือคนอื่นแม้ว่าพวกเขาเป็นเหมือนกัน!
- สำหรับคำว่า"ทั้งสองแก้ไข"แฟ้ม,มันคือยิ่งแย่ใหญ่ช่วยข้าด้วย คำว่า"หัว(ปัจจุบันเปลี่ยน)"แสดงที่ถูกต้องเป็นรหัสมอส อย่างไรก็ตามที่"พ่อแม่ของ#ค่อยจัดการเรื่อง(ก่อกข้อความ)"ส่วนแสดงถึงครึ่งหนึ่งของรหัสมอส อีกครั้ง ถึงแม้ว่าทั้งสองหน่วยมีทั้งหมดรหัส!! ฉันเด็กคุณไม่ยอมรับคน"ที่เข้ามาเปลี่ยน"(ในฐา labelled ยกับรหัส)จะถูกลบออกรหัสนั่นมันอยู่ในทั้งสองหน่วย!
ถ้าฉันไม่ทำพวกนี้การเปลี่ยนแปลงเร็ว succession ฉันจะ hopelessly หลงทางและสับสนเกี่ยวกับสิ่งที่ git เป็นการแสดงฉัน มันแน่นเกิดขึ้นหลายครั้งในอดีตมาเหมือนกันแต่ฉันไม่สามารถวางนิ้วบนเกิดอะไรขึ้นผิดพลาด ตอนนี้ที่ฉันแพร่พันธุ์นี้และยืนยันก่อนที่พฤติกรรมฉันเลย flummoxed เป็นเพื่ออะไร git กำลังทำอะไรและทุกคนกำลังรับมือกับบทละครนี้หรอก
ปรับปรุง 2
โอเคฉันเห็นว่าทำไมมันจะต้องถอดรหัสแล้ว มันเป็นเพราะว่าการเปลี่ยนแปลงฉันทำอยู่ feature-b
อยู่ในหลาย commits และพวกนั้น commits กลายเป็ squashed ตอนที่ผนวกรวมเพื่ main
งคับพวกเขาอย่างรวดเร็ว นี่คือไม่ต้องสงสัยที่แหล่งข่าวของความเจ็บปวดและเหตุผลว่าทำไมฉันพยายามที่จะคิดให้ออกเป็น saner workflow.