Eu tenho dois ramos: master e dev
Eu quero criar um "ramo de funcionalidade" do dev ramo.
Atualmente no ramo dev, eu faço:
$ git checkout -b myfeature dev
... (algum trabalho)
$ git commit -am "blablabla"
$ git push origin myfeature
Mas, depois de visualizar meus galhos, obtive:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Quero dizer que o ramo parece ff fundido, e eu não entendo o porquê ...
O que estou fazendo de errado?
Você pode me explicar como se ramifica de outra ramificação e retorna ao repositório remoto da ramificação de recursos?
Tudo isso em um modelo de ramificação como o descrito aqui .
fonte
myFeature
depois de ter sido mescladodev
?myFeature
ramificação foi enviada ao servidor antes da mesclagem, nada. Mas semyFeature
ainda não foi enviado ao servidor e você deseja que ele apareça no servidor, você deve enviá-lo separadamente.git checkout -b myFeature dev
o mesmo que esses 3 comandos:,git checkout dev
entãogit branch myFeature
e entãogit checkout myFeature
?--no-ff
mesclagem se parece #Se você deseja criar uma nova ramificação a partir de qualquer uma das ramificações existentes no Git, basta seguir as opções.
Primeiro mude / efetue o checkout no ramo de onde você deseja criar um novo ramo. Por exemplo, se você tiver os seguintes ramos, como:
Portanto, se você deseja criar um novo ramo chamado "subbranch_of_b1" sob o ramo chamado "branch1", siga as etapas:
Finalize a compra ou mude para "branch1"
Agora crie seu novo ramo chamado "subbranch_of_b1" sob o "branch1" usando o seguinte comando.
O exemplo acima criará um novo ramo chamado subbranch_of_b1 sob o ramo branch1 (observe que
branch1
no comando acima não é obrigatório, pois o HEAD está apontando para ele no momento, você pode especificá-lo se estiver em um ramo diferente).Agora, depois de trabalhar com o subbranch_of_b1, você pode confirmar e enviar ou mesclar local ou remotamente.
empurre o subbranch_of_b1 para controle remoto
fonte
git checkout -b some-branch
é taquigrafiagit checkout -b some-branch master
. Acontece quegit checkout -b some-branch
é uma abreviação de #git checkout -b some-branch <current_active_branch>
Criar uma filial
$ git branch branch1
$ git branch branch2
Fazer checkout de uma agência
O comando git checkout alterna ramificações ou restaura os arquivos da árvore de trabalho
$ git checkout branchname
Renomeando uma ramificação
$ git branch -m branch1 newbranchname
Excluir uma ramificação
$ git branch -d branch-to-delete
$ git branch -D branch-to-delete
( forçar exclusão sem verificar o status mesclado )Criar e alternar ramificação
$ git checkout -b branchname
Ramos completamente incluídos
$ git branch --merged
************************** Diferenças entre ramificações [git diff branch1..branch2] ************** **********
Diferença multilinha$ git diff master..branch1
$ git diff --color-words branch1..branch2
fonte
git push origin :old-name new-name
para excluir a ramificação remota de nome antigo e enviar a ramificação local com novo nome.Faça trabalho simultâneo na
dev
filial. O que acontece é que, no seu cenário, o ramo de recursos avança da ponta do ramo de desenvolvimento, mas o ramo de desenvolvimento não muda. É mais fácil desenhar como uma linha reta, porque pode ser pensado como um movimento para a frente. Você chegou ao ponto A no dev e a partir daí simplesmente continuou em um caminho paralelo. Os dois ramos realmente não divergiram.Agora, se você fizer um commit no dev, antes de mesclar, você começará novamente no mesmo commit, A, mas agora os recursos irão para C e dev para B. Isso mostrará a divisão que você está tentando visualizar, como as ramificações agora divergiram.
Versus
fonte
O Git 2.23 apresenta
git switch
egit restore
divide as responsabilidades degit checkout
Criando uma nova ramificação a partir de uma ramificação existente a partir do git 2.23:
git switch -c my-new-branch
Mudou para uma nova ramificação 'my-new-branch'
Dê uma olhada nesta postagem no blog do Github, explicando as alterações em mais detalhes:
fonte
Para criar uma ramificação a partir de outra ramificação no diretório local, você pode usar o seguinte comando.
Por exemplo:
fonte
Se você deseja criar um ramo a partir de outro ramo, siga as etapas abaixo:
Pressupostos :
BranchExisting
é o nome da ramificação da qual você precisa criar uma nova ramificação com o nomeBranchMyNew
.Passos :
Busque a ramificação na sua máquina local.
Este comando criará uma nova ramificação em seu local com o mesmo nome de ramificação.
Agora, do checkout da ramificação principal até a ramificação recém-buscada
Agora você está no BranchExisting. Agora crie uma nova ramificação a partir dessa ramificação existente.
Aqui está!
fonte
Para criar uma ramificação a partir de outra, também é possível usar esta sintaxe:
É um pouco mais curto que "git checkout -b" + "git push origin"
fonte