ใช้กรณีต่อไปนี้:
ฉันมีงานในสาขาหัวข้อและตอนนี้ฉันพร้อมที่จะรวมกลับไปเป็นหลัก:
* eb3b733 3 [master] [origin/master]
| * b62cae6 2 [topic]
|/
* 38abeae 1
ฉันดำเนินการผสานจากต้นแบบแก้ไขข้อขัดแย้งและตอนนี้ฉันมี:
* 8101fe3 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
* | eb3b733 3 [origin/master]
|/
* 38abeae 1
ตอนนี้การผสานใช้เวลาพอสมควรดังนั้นฉันจึงทำการดึงข้อมูลอีกครั้งและสังเกตว่าสาขาต้นแบบระยะไกลมีการเปลี่ยนแปลงใหม่:
* 8101fe3 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
| | * e7affba 4 [origin/master]
| |/
|/|
* | eb3b733 3
|/
* 38abeae 1
หากฉันลอง 'git rebase origin / master' จากต้นแบบฉันถูกบังคับให้แก้ไขข้อขัดแย้งทั้งหมดอีกครั้งและฉันก็ต้องทำตามคำสั่งผสาน:
* d4de423 2 [master]
* e7affba 4 [origin/master]
* eb3b733 3
| * b62cae6 2 [topic]
|/
* 38abeae 1
มีวิธีที่สะอาดในการลดการรวมเพื่อให้ฉันจบด้วยประวัติเหมือนที่ฉันแสดงด้านล่างหรือไม่
* 51984c7 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
* | e7affba 4 [origin/master]
* | eb3b733 3
|/
* 38abeae 1
git config --global pull.rebase preserve
เพื่อรักษาความมุ่งมั่นที่ผสานไว้เสมอในระหว่างการ rebase
git --rebase-merges
git --preserve-merges
ดูสิ่งที่ Git rebase --preserve-merges
ทำ“” ทำ (และทำไม?)
--preserve-merges
เลิกใช้แล้ว ใช้git rebase --rebase-merges origin/master
git rebase --preserve-merges origin/master