Comment créer une nouvelle branche à partir d'un tag?

528

Je voudrais créer une nouvelle branche principale à partir d'une balise existante. Dis que j'ai un tag v1.0. Comment créer une nouvelle branche à partir de cette balise?

Andrew
la source
doublon possible de la balise Checkout GIT
Greg Bacon

Réponses:

877

Wow, c'était plus facile que je ne le pensais:

git checkout -b newbranch v1.0
Andrew
la source
53
Correct. Notez que vous auriez également pu rétablir la branche principale au point de la balise avecgit reset --hard v1.0
wadesworld
3
Si cela ne fonctionne pas car "<tag> n'est pas une validation valide" ou une erreur similaire (souvent lorsque vous travaillez sur un référentiel partagé), reportez-vous à stackoverflow.com/questions/35979642/…
SalmonKiller
6
La suggestion de @wadesworld pourrait fonctionner, mais si quelqu'un lit ceci et n'est pas sûr à 100% de ce que signifie réinitialiser la branche principale, ne le faites pas .
Nathan Long
C'est une meilleure réponse que j'ai trouvée ici - stackoverflow.com/a/35979751/3145960
Reaz Murshed
101

Si vous souhaitez simplement créer une nouvelle branche sans y passer immédiatement, vous pouvez procéder comme suit:

git branch newbranch v1.0
user1069067
la source
6
Je pense que cela devrait être la réponse acceptée car elle fait exactement ce qui est requis. La réponse acceptée fait autre chose qui n'est pas indiqué dans la question.
Javier Vazquez
40

J'ai utilisé les étapes suivantes pour créer une nouvelle branche de correctif à partir d'un tag.

Syntaxe

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

Étapes pour le faire.

  1. git checkout -b NewBranchName v1.0
  2. Apportez des modifications aux versions pom / release
  3. Changements d'étape
  4. git commit -m "Mettre à jour les versions de pom pour la branche Hotfix"
  5. Enfin, poussez votre branche nouvellement créée vers un référentiel distant.
git push -u origin NewBranchName

J'espère que cela vous aidera.

Tarun Kumar
la source
17

J'ai résolu le problème comme ci-dessous 1. Obtenez la balise de votre branche 2. Écrivez la commande ci-dessous

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

ou vous pouvez faire avec une autre commande

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

une fois que vous êtes prêt avec votre branche de correctif, il est temps de déplacer cette branche vers github, vous pouvez le faire en écrivant la commande ci-dessous

git push --set-upstream origin hotfix_4.4.3
Kirtikumar A.
la source
5

La situation devient un peu problématique si nous voulons créer une branche à partir d'une balise du même nom .

Dans ce cas, et dans des scénarios similaires, l'important est de savoir: les branches et les balises sont en fait des fichiers texte sur une seule ligne dans le .git/refsrépertoire, et nous pouvons les référencer explicitement en utilisant leurs chemins ci-dessous .git. Les branches sont appelées ici "têtes", pour rendre notre vie plus simple.

Ainsi, refs/heads/masterest le vrai nom explicite de la masterbranche. Et refs/tags/cicaest le nom exact de la balise nommée cica.

La commande correcte pour créer une branche nommée à cicapartir de la balise nommée cicaest:

git branch cica refs/tags/cica
peterh - Réintégrer Monica
la source
4

Ma liste de succursales (seulement maître maintenant)

liste des succursales

Ma liste de balises (trois balises)

liste de balises

Passer à la nouvelle fonctionnalité de branche / codec à partir de la balise opus_codec

git checkout -b feature/codec opus_codec

passer à la succursale

eranga
la source
2
Veuillez ne pas utiliser de captures d'écran si un copier-coller de texte suffit également.
peterh