787 votes

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

J'aimerais créer une nouvelle branche principale à partir d'une étiquette existante. Disons que j'ai une balise v1.0 . Comment créer une nouvelle branche à partir de cette étiquette ?

1 votes

Duplication possible de Checkout GIT tag

1262voto

Andrew Points 30079

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

git checkout -b newbranch v1.0

63 votes

Correct. Notez que vous auriez également pu ramener la branche principale au point de la balise avec git reset --hard v1.0

11 votes

Si cela ne fonctionne pas à cause de "<tag> is not a valid commit" ou d'une erreur similaire (souvent lorsque l'on travaille sur un dépôt partagé), se référer à stackoverflow.com/questions/35979642/

25 votes

La suggestion de @wadesworld pourrait fonctionner, mais si quelqu'un lit ceci et n'est pas 100% sûr de ce que signifie réinitialiser la branche master, ne le faites pas .

146voto

user1069067 Points 1

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

git branch newbranch v1.0

7 votes

Je pense que cette réponse devrait être acceptée car elle fait exactement ce qui est demandé. La réponse acceptée fait quelque chose d'autre qui n'est pas mentionné dans la question.

144voto

Tarun Kumar Points 635

J'ai utilisé les étapes suivantes pour créer une nouvelle branche hot fix à partir d'une Tag.

Syntaxe

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

Marche à suivre.

  1. git checkout -b NewBranchName v1.0
  2. Modifier les versions pom / release
  3. Changements de stade
  4. git commit -m "Update pom versions for Hotfix branch"
  5. Enfin, poussez votre branche nouvellement créée vers le référentiel distant.

    git push -u origin NewBranchName

J'espère que cela vous aidera.

19voto

kirti avaiya Points 991

J'ai résolu le problème comme suit 1. Obtenez l'étiquette de votre branche 2. Écrire la commande suivante

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

ou vous pouvez utiliser d'autres commandes

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

une fois que vous êtes prêt avec votre branche hotfix, il est temps de déplacer cette branche sur github, vous pouvez le faire en écrivant la commande suivante

git push --set-upstream origin hotfix_4.4.3

9voto

Peter Horvath Points 2177

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

Dans ce cas, et dans d'autres scénarios similaires, l'important est de savoir que les branches et les étiquettes sont en fait des fichiers texte d'une seule ligne dans le format .git/refs et nous pouvons les référencer explicitement en utilisant leurs chemins d'accès ci-dessous .git . Les branches sont appelées ici "têtes", pour nous simplifier la vie.

Ainsi, refs/heads/master est le nom réel et explicite du master branche. Et refs/tags/cica est le nom exact de la balise nommée cica .

La commande correcte pour créer une branche nommée cica à partir de la balise nommée cica est :

git branch cica refs/tags/cica

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X