Mise à jour mai 2015
Depuis git 2.4.1 , vous pouvez faire
git config --global push.followTags true
Si la valeur est true, activez l'option --follow-tags par défaut.
Vous pouvez remplacer cette configuration au moment de l'envoi en spécifiant --no-follow-tags.
Comme indiqué dans ce fil de discussion par Matt Rogers répondant à Wes Hurd :
--follow-tags
ne pousse que les balises annotées .
git tag -a -m "I'm an annotation" <tagname>
Ce serait poussé (par opposition à git tag <tagname>
une balise légère, qui ne serait pas poussée, comme je l'ai mentionné ici )
Mise à jour avril 2013
Depuis git 1.8.3 (22 avril 2013) , vous n'avez plus besoin de faire 2 commandes pour pousser les branches, puis pour pousser les balises :
La nouvelle --follow-tags
option " " indique à " git push
" de pousser les balises annotées pertinentes lors de la sortie des branches .
Vous pouvez maintenant essayer, en poussant de nouveaux commits:
git push --follow-tags
Cela ne poussera pas toutes les balises locales cependant, seulement celle référencée par les commits qui sont poussées avec le git push
.
Git 2.4.1+ (Q2 2015) introduira l'option push.followTags
: voir " Comment faire" git push
"inclure des balises dans une branche? ".
Réponse originale, septembre 2010
L'option nucléaire serait git push --mirror
, ce qui poussera tous les arbitres sous refs/
.
Vous pouvez également envoyer une seule balise avec votre validation de branche actuelle:
git push origin : v1.0.0
Vous pouvez combiner l' --tags
option avec une refspec comme:
git push origin --tags :
(puisque cela --tags
signifie: toutes les références sous refs/tags
sont poussées, en plus des références spécifiées explicitement sur la ligne de commande )
Vous avez également cette entrée " Pousser les branches et les balises avec une seule invocation " git push " "
Un conseil pratique vient d'être publié sur la liste de diffusion Git par Zoltán Füzesi:
J'utilise .git/config
pour résoudre ce problème:
[remote "origin"]
url = ...
fetch = +refs/heads/*:refs/remotes/origin/*
push = +refs/heads/*
push = +refs/tags/*
Avec ces lignes ajoutées git push origin
, toutes vos branches et balises seront téléchargées. Si vous souhaitez n'en télécharger que certains, vous pouvez les énumérer.
Je ne l'ai pas encore essayé moi-même, mais il semble que cela pourrait être utile jusqu'à ce qu'une autre façon de pousser les branches et les balises en même temps soit ajoutée à git push.
D'un autre côté, cela ne me dérange pas de taper:
$ git push && git push --tags
Méfiez - vous , comme commenté par Aseem Kishore
push = +refs/heads/*
va forcer toutes vos branches .
Cela m'a mordu tout à l'heure, alors pour info.
René Scheibe ajoute ce commentaire intéressant :
Le --follow-tags
paramètre est trompeur car seules les balises sous .git/refs/tags
sont prises en compte.
Si git gc
est exécuté, les balises sont déplacées de .git/refs/tags
vers .git/packed-refs
. Ensuite, git push --follow-tags ...
ne fonctionne plus comme prévu.
git push && git push --tags
?