Atualização de maio de 2015
No git 2.4.1 , você pode fazer
git config --global push.followTags true
Se definido como true, ative a opção --follow-tags por padrão.
Você pode substituir essa configuração no momento do envio, especificando --no-follow-tags.
Conforme observado neste tópico por Matt Rogers, respondendo a Wes Hurd :
--follow-tags
empurra apenas tags anotadas .
git tag -a -m "I'm an annotation" <tagname>
Isso seria enviado (ao contrário de git tag <tagname>
uma tag leve, que não seria enviada, como eu mencionei aqui )
Atualização de abril de 2013
Desde o git 1.8.3 (22 de abril de 2013) , você não precisa mais executar 2 comandos para enviar ramificações e depois enviar tags :
A nova --follow-tags
opção " " indica " git push
" para enviar tags anotadas relevantes ao empurrar ramificações .
Agora você pode tentar, ao enviar novas confirmações:
git push --follow-tags
Porém, isso não enviará todas as tags locais, apenas a referenciada por confirmações que são enviadas com o git push
.
O Git 2.4.1+ (Q2 2015) apresentará a opção push.followTags
: consulte " Como fazer" git push
"incluir tags em uma ramificação? ".
Resposta original, setembro de 2010
A opção nuclear seria git push --mirror
, o que empurrará todos os árbitros para baixo refs/
.
Você também pode enviar apenas uma tag com seu commit de ramificação atual:
git push origin : v1.0.0
Você pode combinar a --tags
opção com um refspec como:
git push origin --tags :
(uma vez que --tags
significa: Todas as referências abaixo refs/tags
são enviadas por push , além das referências especificadas explicitamente na linha de comando )
Você também tem esta entrada " Empurrando ramificações e tags com uma única invocação " git push "
Uma dica útil foi postada na lista de discussão do Git por Zoltán Füzesi:
Eu uso .git/config
para resolver isso:
[remote "origin"]
url = ...
fetch = +refs/heads/*:refs/remotes/origin/*
push = +refs/heads/*
push = +refs/tags/*
Com essas linhas adicionadas, você git push origin
fará o upload de todos os seus ramos e tags. Se você deseja carregar apenas alguns deles, pode enumerá-los.
Ainda não tentei, mas parece que pode ser útil até que outra maneira de enviar ramos e tags ao mesmo tempo seja adicionada ao git push.
Por outro lado, não me importo de digitar:
$ git push && git push --tags
Cuidado , como comentado por Aseem Kishore
push = +refs/heads/*
vai forçar-empurra todos os seus ramos .
Isso me mordeu agora, então, para sua informação.
René Scheibe acrescenta este comentário interessante :
O --follow-tags
parâmetro é enganoso, pois apenas as tags abaixo .git/refs/tags
são consideradas.
Se git gc
for executado, as tags serão movidas de .git/refs/tags
para .git/packed-refs
. Depois disso git push --follow-tags ...
, não funciona mais como o esperado.
git push && git push --tags
?