Mais
Empurra o compromisso para outro ramo
É possível comprometer-se e empurrar mudanças de um ramo para outro.
Suponha que eu cometi mudanças em BRANCH1 e quero empurrá-las para BRANCH2.
De BRANCH1, é válido para fazer:
git push origin **BRANCH2**
E depois reiniciar BRANCH1?
331
7
Isso quase vai funcionar.
Ao empurrar para um ramo não predefinido, você precisa especificar a referência de origem e a referência de destino:
Ou
Certamente, embora só funcione se ele'é um avanço rápido do BRANCH2 ou se você o forçar. A sintaxe correta para fazer uma coisa dessas é
Veja a descrição de um "refspec" na página [git push man][1] para mais detalhes sobre o seu funcionamento. Note também que tanto um force push quanto um reset são operações que "reescreve o histórico", e não deve'ser tentado por um fraco de coração a menos que você'tenha certeza absoluta de que sabe o que você'está fazendo com relação a qualquer repositório remoto e outras pessoas que têm garfos/clones do mesmo projeto.
[1]: http://www.kernel.org/pub/software/scm/git/docs/git-push.html
It'é muito simples. Suponha que você tenha feito alterações na sua Filial A que reside tanto no local como remotamente, mas você quer empurrar essas alterações para a Filial B que não't existe em qualquer lugar.
Passo-01: Criar e mudar para a nova Filial B***
Passo-02: Adicionar mudanças na nova filial local
Passo-03: Comprometa as mudanças
Step-04: Push changes to the new branch B. O comando abaixo irá criar um novo ramo B assim como remotamente
Agora, você pode verificar pelo bitbucket que o ramo B terá mais um compromisso do que o ramo A. E quando você vai verificar o ramo A estas mudanças ganharam'não estar lá pois estas foram empurradas para o ramo B.
Note: Se você cometeu suas mudanças no ramo A e depois disso você quer mudar essas mudanças para o novo ramo B então você terá que resetar essas mudanças primeiro.
A** Aprendizagem Feliz
No meu caso eu tinha um compromisso local, que era'não empurrado para o
origin
master, mas comprometido com a minha filial local
master`. Este commit local deveria agora ser empurrado para outra filial.Com **Git Extensions*** você pode fazer algo como isto:
Você também pode fazer isso na **GIT linha de comando**. Exemplo copiado de [David Christensen*](https://www.endpoint.com/blog/2012/06/21/moving-commit-to-another-branch-in-git):
Eu recebo um resultado ruim com o comando
git push origin branch1:branch2
:No meu caso,
branch2
foi apagado ebranch1
foi atualizado com as novas alterações.Assim, se você quer que as alterações só empurrem o
branch2
dobranch1
, tente estes procedimentos:No
branch1
: clique em .branch1
: add .``.No
branch1
:git commit -m 'comments'
Em
branch1
:No 'branch2': "git pull origin branch1
No 'branch1': voltar ao compromisso anterior.
você pode fazer isso facilmente
Você se comprometeu com a BRANCH1 e quer se livrar desse compromisso sem perder as mudanças? **git reset*** é o que você precisa. Faça:
se você quer que o BRANCH2 seja uma nova filial. Você também pode fundir isto no final com outra filial, se quiser. Se o BRANCH2 já existe, então deixe esta etapa de fora.
Então deixe:
se você quiser redefinir o compromisso no ramo que você se comprometeu. Isto leva as mudanças dos últimos três commits.
Então faz o seguinte para trazer os commits redefinidos para o BRANCH2
Esta fonte foi útil: https://git-scm.com/docs/git-reset#git-reset-Undoacommitmakingitatopicbranch