Tome o seguinte caso:
Tenho algum trabalho em uma ramificação de tópicos e agora estou pronto para voltar ao master:
* eb3b733 3 [master] [origin/master]
| * b62cae6 2 [topic]
|/
* 38abeae 1
Realizo a mesclagem do mestre, resolvo os conflitos e agora tenho:
* 8101fe3 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
* | eb3b733 3 [origin/master]
|/
* 38abeae 1
Agora, a mesclagem levou algum tempo, então eu faço outra busca e percebo que a ramificação principal remota tem novas alterações:
* 8101fe3 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
| | * e7affba 4 [origin/master]
| |/
|/|
* | eb3b733 3
|/
* 38abeae 1
Se eu tentar 'git rebase origin / master' do master, sou forçado a resolver todos os conflitos novamente e também perco a confirmação de mesclagem:
* d4de423 2 [master]
* e7affba 4 [origin/master]
* eb3b733 3
| * b62cae6 2 [topic]
|/
* 38abeae 1
Existe uma maneira limpa de refazer a consolidação de mesclagem para que eu termine com um histórico como o que mostro abaixo?
* 51984c7 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
* | e7affba 4 [origin/master]
* | eb3b733 3
|/
* 38abeae 1
git config --global pull.rebase preserve
para sempre preservar os commits mesclagem durante uma rebase
git --rebase-merges
substituirá o antigo git --preserve-merges
. Veja o que exatamente o “ rebase --preserve-merges
” do Git faz (e por quê?)
--preserve-merges
está obsoleto. Usegit rebase --rebase-merges origin/master
git rebase --preserve-merges origin/master