Comecei a trabalhar em um projeto criando uma nova ramificação masters
e git checkout -b MyBranch
depois fiz vários commits (nenhum push ainda).
O que eu deveria ter feito em vez disso era começar do Secondary
branch. Então, como posso fazer do meu branch um sub-branch de Secondary
, e mesclar (esse é o termo certo?) o código de Secondary
no meu, para mesclar depois. Então como eu conserto isso?
Isso é um trabalho para rebase
? Ainda estou muito confuso com git
a terminologia...
No seu cenário,
git merge
egit rebase
resolveria a situação, mas de maneiras muito diferentes.Mesclar Git
Se você decidir mesclar
MyBranch
emSecondary
, seu histórico pareceria menos linear e um pouco mais bagunçado. Você teria um branch (MyBranch
) originado demasters
, que além de trazer as mudanças pretendidas paraSecondary
, também carregaria mudanças (possivelmente indesejadas) demasters
.Uma abordagem de mesclagem poderia, não apenas tornar alterações indesejadas disponíveis em
Secondary
, mas também faria seu histórico parecer mais entrelaçado e difícil de ler. Essa definitivamente não é a melhor maneira de se recuperar da sua situação.Rebase do Git
Por outro lado, um rebase do git pode ser o que você está procurando, já que você pode transplantar o conjunto de commits desejado
Secondary
com a--onto
opção.Git Cherry-Seleção
Outra abordagem poderia ser usar o
cherry-pick
comando, onde você basicamente reescreve os commits entremasters
eMyBranch
em cima de um branch auxiliar (MyBranch2
) que se ramifica deSecondary
. Então, force-deleteMyBranch
, e finalmente renomeieMyBranch2
paraMyBranch
.