Actualización de mayo de 2015
A partir de git 2.4.1 , puedes hacer
git config --global push.followTags true
Si se establece en verdadero, habilite la opción --follow-tags por defecto.
Puede anular esta configuración en el momento de la inserción especificando --no-follow-tags.
Como se señala en este hilo de Matt Rogers respondiendo a Wes Hurd :
--follow-tags
solo empuja etiquetas anotadas .
git tag -a -m "I'm an annotation" <tagname>
Eso sería empujado (en lugar de git tag <tagname>
una etiqueta ligera, que no sería empujada, como mencioné aquí )
Actualización de abril de 2013
Desde git 1.8.3 (22 de abril de 2013) , ya no tiene que hacer 2 comandos para empujar ramas y luego empujar etiquetas :
La nueva " --follow-tags
" opción le dice " git push
" que empuje las etiquetas anotadas relevantes cuando empuje las ramas .
Ahora puede intentar, al presionar nuevas confirmaciones:
git push --follow-tags
Sin embargo, eso no empujará todas las etiquetas locales, solo la referenciada por commits que se empujan con el git push
.
Git 2.4.1+ (Q2 2015) presentará la opción push.followTags
: consulte " ¿Cómo hacer que" git push
"incluya etiquetas dentro de una rama? ".
Respuesta original, septiembre de 2010
La opción nuclear sería git push --mirror
, que empujará a todas las referencias hacia abajo refs/
.
También puede insertar solo una etiqueta con su confirmación de rama actual:
git push origin : v1.0.0
Puede combinar la --tags
opción con una especificación de referencia como:
git push origin --tags :
(ya que --tags
significa: todas las referencias debajo refs/tags
se insertan , además de las especificaciones especificadas explícitamente en la línea de comando )
También tiene esta entrada " Empujar ramas y etiquetas con una sola invocación " git push "
Zoltán Füzesi acaba de publicar un consejo útil en la lista de correo de Git :
Solía .git/config
resolver esto:
[remote "origin"]
url = ...
fetch = +refs/heads/*:refs/remotes/origin/*
push = +refs/heads/*
push = +refs/tags/*
Con estas líneas agregadas git push origin
, cargará todas sus ramas y etiquetas. Si desea cargar solo algunos de ellos, puede enumerarlos.
Todavía no lo he probado, pero parece que podría ser útil hasta que se agregue otra forma de empujar ramas y etiquetas al mismo tiempo al git push.
Por otro lado, no me importa escribir:
$ git push && git push --tags
Tenga cuidado , como se ha comentado por Aseem Kishore
push = +refs/heads/*
se obligará-empuja todas sus ramas .
Esto me mordió justo ahora, así que para tu información.
René Scheibe agrega este interesante comentario :
El --follow-tags
parámetro es engañoso ya que solo .git/refs/tags
se consideran las etiquetas debajo .
Si git gc
se ejecuta, las etiquetas se mueven de .git/refs/tags
a .git/packed-refs
. Después git push --follow-tags ...
ya no funciona como se esperaba.
git push && git push --tags
?