Aşağıdaki durumu ele alalım:
Bir konu dalında bazı işlerim var ve şimdi master'a geri dönmeye hazırım:
* eb3b733 3 [master] [origin/master]
| * b62cae6 2 [topic]
|/
* 38abeae 1
Ben master birleştirme gerçekleştirmek, anlaşmazlıkları çözmek ve şimdi var:
* 8101fe3 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
* | eb3b733 3 [origin/master]
|/
* 38abeae 1
Şimdi, birleştirme bana biraz zaman aldı, bu yüzden başka bir getirme yapıyorum ve uzak ana dalın yeni değişiklikler olduğunu fark ediyorum:
* 8101fe3 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
| | * e7affba 4 [origin/master]
| |/
|/|
* | eb3b733 3
|/
* 38abeae 1
'Git rebase origin / master' ı master'dan denersem, tüm çatışmaları tekrar çözmek zorunda kalırım ve birleştirme taahhüdünü de kaybederim:
* d4de423 2 [master]
* e7affba 4 [origin/master]
* eb3b733 3
| * b62cae6 2 [topic]
|/
* 38abeae 1
Birleştirme taahhüdünü yeniden kazanmanın temiz bir yolu var mı, bu yüzden aşağıda gösterdiğim gibi bir tarihle karşılaşıyorum?
* 51984c7 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
* | e7affba 4 [origin/master]
* | eb3b733 3
|/
* 38abeae 1
git config --global pull.rebase preserve
bir rebase sırasında birleştirme taahhütlerini her zaman korumak için
git --rebase-merges
eski olanın yerini alacak git --preserve-merges
. Bkz aynen Git adlı “ne rebase --preserve-merges
” do (ve neden?)
--preserve-merges
kullanımdan kaldırıldı. Kullanımgit rebase --rebase-merges origin/master
git rebase --preserve-merges origin/master