แก้ไข:
คำตอบของฉันด้านล่างเอกสารวิธีการผสานmasterเข้าaqที่ถ้าคุณดูรายละเอียดของการผสานมันแสดงการเปลี่ยนแปลงที่เกิดขึ้นในก่อนที่จะมีการรวมไม่เปลี่ยนแปลงที่เกิดขึ้นในaq masterฉันรู้ว่านั่นอาจไม่ใช่สิ่งที่คุณต้องการแม้ว่าคุณจะคิด!
แค่:
git checkout aq
git merge master
ไม่เป็นไร
ใช่นี้ผสานง่ายจะแสดงให้เห็นว่าการเปลี่ยนแปลงจากmasterที่ได้ทำไปaqที่จุดที่ไม่รอบทางอื่น ๆ ; แต่ก็ไม่เป็นไร - เพราะนั่นคือสิ่งที่เกิดขึ้น! ต่อมาเมื่อคุณรวมสาขาของคุณเข้าด้วยกันในที่สุดmasterนั่นคือเมื่อการรวมจะแสดงการเปลี่ยนแปลงทั้งหมดของคุณตามที่ได้ทำไว้master(ซึ่งเป็นสิ่งที่คุณต้องการอย่างแท้จริงและเป็นสิ่งที่ผู้คนคาดหวังว่าจะพบข้อมูลนั้น)
ฉันได้ตรวจสอบแล้วและวิธีการด้านล่างนี้ยังแสดงการเปลี่ยนแปลงที่เหมือนกันทุกประการ(การเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นaqตั้งแต่การแยกแบบดั้งเดิมระหว่างaqและmaster) เป็นวิธีการปกติด้านบนเมื่อคุณรวมทุกอย่างเข้าmasterด้วยกัน ดังนั้นฉันคิดว่ามันเป็นข้อเสียที่แท้จริงเพียงอย่างเดียว (นอกเหนือจากความซับซ้อนและไม่ได้มาตรฐาน ... : - /) คือถ้าคุณgit reset --hard HEAD~<n>ไขการเปลี่ยนแปลงล่าสุดที่มีและสิ่งนี้ผ่านการรวมแล้วเวอร์ชั่นด้านล่างจะย้อนกลับ สาขา 'ผิด' ซึ่งคุณต้องแก้ไขด้วยมือ (เช่นกับgit reflog& git reset --hard [sha])
[ดังนั้นสิ่งที่ฉันคิดว่าก่อนหน้านี้คือ:]
มีปัญหากับ:
git checkout aq
git merge master
เนื่องจากการเปลี่ยนแปลงที่แสดงในการคอมมิชชันคอมมิชชัน (เช่นถ้าคุณดูตอนนี้หรือในภายหลังใน Github, Bitbucket หรือผู้ดูประวัติ git ท้องถิ่นที่คุณชื่นชอบ) เป็นการเปลี่ยนแปลงที่เกิดขึ้นกับมาสเตอร์ซึ่งอาจไม่ใช่สิ่งที่คุณต้องการ
ในทางกลับกัน
git checkout master
git merge aq
แสดงการเปลี่ยนแปลงที่เกิดขึ้นใน aq ซึ่งอาจเป็นสิ่งที่คุณต้องการ (หรืออย่างน้อยก็มักจะเป็นสิ่งที่ฉันต้องการ!) แต่การผสานแสดงการเปลี่ยนแปลงที่ถูกต้องอยู่ในสาขาที่ไม่ถูกต้อง!
วิธีรับมือ!
กระบวนการเต็มรูปแบบลงท้ายด้วยการรวมการกระทำแสดงการเปลี่ยนแปลงที่เกิดขึ้นใน aq (ตามการผสานที่สองข้างต้น) แต่ด้วยการผสานที่มีผลต่อสาขา aq คือ:
git checkout master
git merge aq
git checkout aq
git merge master
git checkout master
git reset --hard HEAD~1
git checkout aq
สิ่งนี้: ผสาน aq เข้ากับ master ส่งต่ออย่างรวดเร็วไปยัง aq เดียวกันรวมกับเลิกใช้บน master และทำให้คุณกลับมาใช้ aq อีกครั้ง!
ฉันรู้สึกว่าฉันขาดอะไรบางอย่างไป - ดูเหมือนว่าจะเป็นสิ่งที่คุณต้องการและสิ่งที่ยากที่จะทำ
นอกจากนี้การคืนเงินจะไม่เทียบเท่า มันสูญเสียการประทับเวลาและตัวตนของความมุ่งมั่นใน aq ซึ่งก็ไม่ใช่สิ่งที่ฉันต้องการ