Comment fusionner une balise git sur une branche

155

J'essaie de trouver la syntaxe pour fusionner un commit étiqueté sur une autre branche. Je suppose que c'est simple, mais mes faibles tentatives de recherche ne le trouvent pas.

ScaryGhast
la source

Réponses:

260

Tu veux dire ça?

git checkout destination_branch
git merge tag_name
Twalberg
la source
11
Idem ici, donc je vais chercher --tags origin alors je pourrais: git merge tagname
Will Hancock
Existe-t-il un moyen de fusionner toutes les balises à la fois?
ComFreek
Est-ce possible dans l'autre sens? Fusionner une branche avec la balise? J'ai essayé "git checkout tag_name" et "git merge branch". Mais a fini par vérifier la branche au lieu de fusionner.
apprenant le
@learner a Tag identifie un commit spécifique. Vous ne pouvez pas fusionner dans un commit spécifique, vous devez donc déplacer la balise vers le commit souhaité. Cela permettrait de résoudre le problème: stackoverflow.com/questions/8044583/…
Josiah
85

N'oubliez pas qu'avant de fusionner, vous devez mettre à jour la balise, elle est assez différente des branches ( git pull origin tag_namene mettra pas à jour vos balises locales). Ainsi, vous avez besoin de la commande suivante:

git fetch --tags origin

Ensuite, vous pouvez effectuer git merge tag_namepour fusionner la balise sur une branche.

Homme mort
la source
4
J'ai dû faire git remote add upstream [email protected]/org/reposuivi de git fetch --tags upstreampour que ça marche.
MarkHu
1

C'est le seul moyen complet et fiable que j'ai trouvé pour y parvenir.

Supposons que vous souhaitiez fusionner "tag_1.0" dans "mybranch".

    $git checkout tag_1.0 (will create a headless branch)
    $git branch -D tagbranch (make sure this branch doesn't already exist locally)
    $git checkout -b tagbranch
    $git merge -s ours mybranch
    $git commit -am "updated mybranch with tag_1.0"
    $git checkout mybranch
    $git merge tagbranch
paiego
la source
0

Je suis en retard au match ici, mais une autre approche pourrait être:

1) créer une branche à partir de la balise ( $ git checkout -b [new branch name] [tag name])

2) créez une pull-request pour fusionner avec votre nouvelle branche dans la branche de destination

Pour la victoire
la source