Como criar uma nova ramificação a partir de uma tag?


528

Eu gostaria de criar uma nova ramificação mestre a partir de uma tag existente. Diga que tenho uma etiqueta v1.0. Como criar uma nova ramificação a partir dessa tag?


possível duplicata da tag GIT
Greg Bacon

Respostas:


877

Uau, isso foi mais fácil do que eu pensava:

git checkout -b newbranch v1.0

53
Corrigir. Note que você também poderia ter apenas definir o ramo de volta mestre, a ponto da tag comgit reset --hard v1.0
wadesworld

3
Se isso não funcionar por causa de "<tag> não é um válido commit" ou um erro semelhante (muitas vezes quando se trabalha em um repositório compartilhado), referem-se a stackoverflow.com/questions/35979642/...
SalmonKiller

6
A sugestão do @wadesworld pode funcionar, mas se alguém ler isso e não estiver 100% certo do que significa redefinir a ramificação principal, não faça isso .
Nathan Long

Esta é uma resposta melhor que eu encontrei aqui - stackoverflow.com/a/35979751/3145960
Reaz Murshed

101

Se você simplesmente deseja criar uma nova ramificação sem mudar imediatamente, faça o seguinte:

git branch newbranch v1.0

6
Eu acho que essa deve ser a resposta aceita, pois faz exatamente o que é necessário. A resposta aceita faz outra coisa não declarada na pergunta.
Javier Vazquez

40

Eu usei as etapas a seguir para criar uma nova ramificação de hotfix a partir de uma tag.

Sintaxe

git checkout -b <New Branch Name> <TAG Name>

Passos para fazer isso.

  1. git checkout -b NewBranchName v1.0
  2. Faça alterações nas versões pom / release
  3. Mudanças de estágio
  4. git commit -m "Atualizar versões do pom para o ramo Hotfix"
  5. Por fim, envie sua ramificação recém-criada para o repositório remoto.
git push -u origin NewBranchName

Espero que isso ajude.


17

Resolvi o problema da seguinte maneira 1. Obtenha a etiqueta do seu ramo 2. Escreva abaixo do comando

Example: git branch <Hotfix branch> <TAG>
    git branch hotfix_4.4.3 v4.4.3
    git checkout hotfix_4.4.3

ou você pode fazer com outro comando

git checkout -b <Hotfix branch> <TAG>
-b stands for creating new branch to local 

Depois de preparar seu ramo de hotfix, é hora de mover esse ramo para o github, você pode fazer isso escrevendo o comando abaixo

git push --set-upstream origin hotfix_4.4.3

5

A situação se torna um pouco problemática se queremos criar uma ramificação a partir de uma tag com o mesmo nome .

Nesse e em cenários semelhantes, o importante é saber: branches e tags são na verdade arquivos de texto de linha única no .git/refsdiretório, e podemos referenciá-los explicitamente usando os pathes abaixo .git. Os ramos são chamados aqui de "cabeças", para tornar nossa vida mais simples.

Assim, refs/heads/masteré o nome real e explícito do masterramo. E refs/tags/cicaé o nome exato da tag nomeada cica.

O comando correto para criar uma ramificação nomeada a cicapartir da tag nomeada cicaé:

git branch cica refs/tags/cica

4

Minha lista de filiais (somente master agora)

lista de filiais

Minha lista de tags (tem três tags)

lista de tags

Alterne para o novo recurso / codec de ramificação da tag opus_codec

git checkout -b feature/codec opus_codec

mudar para ramificação


2
Por favor, não use screenshots se também copiar e colar texto for suficiente.
peterh - Restabelece Monica
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.