Eu tenho dois ramos de recursos (particulares) nos quais estou trabalhando.
a -- b -- c <-- Master
\ \
\ d -- e <-- Branch1
\
f -- g <-- Branch2
Depois de trabalhar nesses ramos um pouco, descobri que preciso das alterações do Branch2 no Branch1. Gostaria de refazer as alterações no Branch2 para o Branch1. Gostaria de terminar com o seguinte:
a -- b -- c <-- Master
\
d -- e -- f -- g <-- Branch1
Tenho certeza de que preciso refazer o segundo ramo para o primeiro, mas não tenho muita certeza sobre a sintaxe correta e qual ramo eu deveria ter feito check-out.
Este comando produzirá o resultado desejado?
(Branch1)$ git rebase --onto Branch1 Branch2
git
git-rebase
feature-branch
Arjen
fonte
fonte
git rebase -
. veja minha resposta abaixoRespostas:
Mudar para o Branch2
Aplique as alterações atuais (Filial2) sobre as alterações da Filial1, permanecendo na Filial2:
O que deixaria o resultado desejado no Branch2:
Você pode excluir o Branch1.
fonte
git rebase
enquanto permanecia no Branch1 reescreveria o histórico do Branch1 para que as alterações do Branch1 fossem copiadas do Branch2. Isso resultará na seguinte ordem de confirmaçãoa - b - f - g - c' - d' - e'
,.Nota: se você estava ativo
Branch1
, poderá, com o Git 2.0 (Q2 2014), digitar:Veja commit 4f40740 de Brian Gesiak
modocache
:rebase
: permite "-
" abreviação para a ramificação anteriorfonte
Eu sei que você pediu para rebase, mas eu escolheria os commits que gostaria de passar do Branch2 para o Branch1. Dessa forma, eu não precisaria me preocupar quando o ramo foi criado a partir do mestre e teria mais controle sobre a fusão.
fonte