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?

Andrew
fonte
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
Andrew
fonte
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
user1069067
fonte
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.

Tarun Kumar
fonte
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
Kirtikumar A.
fonte
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
peterh - Restabelecer Monica
fonte
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

eranga
fonte
2
Por favor, não use screenshots se também copiar e colar texto for suficiente.
peterh - Restabelece Monica