Візьміть такий випадок:
У мене є робота в тематичній галузі, і тепер я готовий знову об'єднатись до майстра:
* 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' від 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
завжди зберігати злиття, здійснені під час
git --rebase-merges
врешті-решт замінить старе git --preserve-merges
. Подивіться, що саме робить " rebase --preserve-merges
" (і чому?)
--preserve-merges
застаріло. Використанняgit rebase --rebase-merges origin/master
git rebase --preserve-merges origin/master