É possível confirmar e enviar alterações de um ramo para outro.
Suponha que comprometi alterações no BRANCH1 e quero enviá-las para o BRANCH2 .
Do BRANCH1 , é válido fazer:
git push origin **BRANCH2**
E, em seguida, redefinir FILIAL1?
git
git-branch
jviotti
fonte
fonte
branch1
ebranch2
precisa estar no controle remoto? E se você quiser enviar do localbranch1
para o remotoorigin branch2
?<remote>/<branch>
git push origin :branch2
pensando que apenas enviaria a ramificação local atual para o controle remotobranch2
, que, em vez disso, excluiria o controle remotobranch2
! A maneira correta égit push origin HEAD:branch2
.Certamente, embora funcione apenas se for um avanço rápido do BRANCH2 ou se você forçá-lo. A sintaxe correta para fazer isso é
Veja a descrição de um "refspec" na página do manual git push para obter mais detalhes sobre como ele funciona. Observe também que um push de força e uma redefinição são operações que "reescrevem o histórico" e não devem ser tentadas pelos fracos de coração, a menos que você tenha certeza absoluta de que sabe o que está fazendo em relação a quaisquer repositórios remotos e outros pessoas que possuem garfos / clones do mesmo projeto.
fonte
git push --force remote local-branch:remote-branch
.É muito simples. Suponha que você tenha feito alterações em sua Filial A, que residem local e remotamente, mas você deseja enviar essas alterações para a Filial B, que não existe em nenhum lugar.
Etapa 01: criar e alternar para o novo ramo B
Etapa 02: adicionar alterações na nova ramificação local
Etapa 03: confirmar as alterações
Passo-04: Empurre alterações para o novo ramo B . O comando abaixo criará uma nova ramificação B também remotamente
Agora, você pode verificar a partir bitbucket que o ramo B terá mais uma comprometer de ramo A . E quando você vai fazer o checkout do ramo Uma dessas mudanças não vai estar lá como estes têm sido empurrados para o ramo B .
Nota: Se você confirmou suas alterações na ramificação A e depois deseja mudar essas alterações para a nova ramificação B , será necessário redefinir essas alterações primeiro. #HappyLearning
fonte
No meu caso, eu tinha um commit local, que não foi enviado
origin\master
, mas confirmado no meumaster
ramo local . Essa confirmação local agora deve ser enviada para outra ramificação.Com as extensões Git, você pode fazer algo assim:
Você também pode fazer isso na linha de comando do GIT . Exemplo copiado de David Christensen :
fonte
Eu tive um resultado ruim com
git push origin branch1:branch2
comando:No meu caso,
branch2
é excluído ebranch1
foi atualizado com algumas novas alterações.Portanto, se você quiser apenas as alterações pressionadas a
branch2
partir debranch1
, tente os procedimentos abaixo:branch1
:git add .
branch1
:git commit -m 'comments'
Ativado
branch1
:git push origin branch1
Ativado
branch2
:git pull origin branch1
Ativado
branch1
: reverta para a confirmação anterior.fonte
você pode fazer isso facilmente
fonte
fonte
Você se comprometeu com o BRANCH1 e deseja se livrar desse commit sem perder as alterações? git reset é o que você precisa. Faz:
se você quiser que o BRANCH2 seja um novo ramo. Você também pode mesclar isso no final com outro ramo, se desejar. Se a FILIAL2 já existir, deixe esta etapa fora.
Então faça:
se você deseja redefinir a confirmação na ramificação que você confirmou. Isso leva as alterações dos três últimos commits.
Em seguida, faça o seguinte para trazer as confirmações redefinidas para BRANCH2
Esta fonte foi útil: https://git-scm.com/docs/git-reset#git-reset-Undoacommitmakingitatopicbranch
fonte