Aggiornamento maggio 2015
A partire da git 2.4.1 , puoi farlo
git config --global push.followTags true
Se impostato su true abilita l'opzione --follow-tags per impostazione predefinita.
Puoi ignorare questa configurazione al momento del push specificando --no-follow-tags.
Come notato in questo thread da Matt Rogers che risponde a Wes Hurd :
--follow-tags
invia solo tag con annotazioni .
git tag -a -m "I'm an annotation" <tagname>
Quello verrebbe spinto (al contrario git tag <tagname>
, un tag leggero, che non verrebbe spinto, come ho detto qui )
Aggiornamento aprile 2013
Da git 1.8.3 (22 aprile 2013) , non è più necessario eseguire 2 comandi per eseguire il push dei rami e quindi i tag :
La nuova " --follow-tags
" opzione dice a " git push
" di spingere i tag annotati rilevanti quando si estendono i rami .
Ora puoi provare, quando spingi nuovi commit:
git push --follow-tags
Tuttavia, ciò non invierà tutti i tag locali, ma solo quello a cui fanno riferimento i commit che vengono inseriti con git push
.
Git 2.4.1+ (Q2 2015) introdurrà l'opzione push.followTags
: vedi " Come fare" git push
"includere tag all'interno di un ramo? ".
Risposta originale, settembre 2010
L'opzione nucleare sarebbe git push --mirror
, che spingerà sotto tutti gli arbitri refs/
.
Puoi anche inviare un solo tag con il commit del ramo corrente:
git push origin : v1.0.0
È possibile combinare l' --tags
opzione con un refspec come:
git push origin --tags :
(poiché --tags
significa: refs/tags
vengono inseriti tutti i ref sottostanti , oltre ai refspec esplicitamente elencati nella riga di comando )
Hai anche questa voce " Push di rami e tag con un'unica invocazione " git push "
Un pratico suggerimento è stato appena pubblicato nella mailing list di Git da Zoltán Füzesi:
Uso .git/config
per risolvere questo:
[remote "origin"]
url = ...
fetch = +refs/heads/*:refs/remotes/origin/*
push = +refs/heads/*
push = +refs/tags/*
Con queste righe aggiunte git push origin
verranno caricati tutti i tuoi rami e tag. Se vuoi caricarne solo alcuni, puoi elencarli.
Non l'ho ancora provato da solo, ma sembra che potrebbe essere utile fino a quando non viene aggiunto un altro modo per spingere rami e tag allo stesso tempo a git push.
D'altra parte, non mi dispiace scrivere:
$ git push && git push --tags
Attenzione , come commentato da Aseem Kishore
push = +refs/heads/*
spingerà forzatamente tutti i tuoi rami .
Questo mi ha morso solo ora, quindi FYI.
René Scheibe aggiunge questo interessante commento :
Il --follow-tags
parametro è fuorviante in quanto .git/refs/tags
vengono considerati solo i tag sottostanti .
Se git gc
viene eseguito, i tag vengono spostati da .git/refs/tags
a .git/packed-refs
. Successivamente git push --follow-tags ...
non funziona più come previsto.
git push && git push --tags
?