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-tagsoption " " 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' --tagsoption avec une refspec comme:
git push origin --tags :
(puisque cela --tagssignifie: toutes les références sous refs/tagssont 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/configpour 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-tagsparamètre est trompeur car seules les balises sous .git/refs/tagssont prises en compte.
Si git gcest exécuté, les balises sont déplacées de .git/refs/tagsvers .git/packed-refs. Ensuite, git push --follow-tags ...ne fonctionne plus comme prévu.
git push && git push --tags?