Ambil contoh berikut:
Saya memiliki beberapa pekerjaan di cabang topik dan sekarang saya siap untuk bergabung kembali ke master:
* eb3b733 3 [master] [origin/master]
| * b62cae6 2 [topic]
|/
* 38abeae 1
Saya melakukan penggabungan dari master, menyelesaikan konflik dan sekarang saya memiliki:
* 8101fe3 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
* | eb3b733 3 [origin/master]
|/
* 38abeae 1
Sekarang, penggabungan ini memakan waktu lama, jadi saya melakukan pengambilan lagi dan perhatikan bahwa cabang master jarak jauh memiliki perubahan baru:
* 8101fe3 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
| | * e7affba 4 [origin/master]
| |/
|/|
* | eb3b733 3
|/
* 38abeae 1
Jika saya mencoba 'git rebase origin / master' dari master, saya terpaksa menyelesaikan semua konflik lagi, dan saya juga kehilangan komit gabungan:
* d4de423 2 [master]
* e7affba 4 [origin/master]
* eb3b733 3
| * b62cae6 2 [topic]
|/
* 38abeae 1
Apakah ada cara bersih untuk memulai kembali komit gabungan jadi saya berakhir dengan sejarah seperti yang saya tunjukkan di bawah ini?
* 51984c7 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
* | e7affba 4 [origin/master]
* | eb3b733 3
|/
* 38abeae 1
git config --global pull.rebase preserve
untuk selalu menjaga komitmen gabungan selama rebase
git --rebase-merges
pada akhirnya akan menggantikan yang lama git --preserve-merges
. Lihat Apa sebenarnya yang dilakukan Git " rebase --preserve-merges
(dan mengapa?)
--preserve-merges
sudah ditinggalkan. Gunakangit rebase --rebase-merges origin/master
git rebase --preserve-merges origin/master