En la configuración remota de git predeterminada, debe insertar etiquetas explícitamente (mientras se obtienen automáticamente junto con las confirmaciones a las que apuntan). Necesitas usar
$ git push <remote> tag <tagname>
para empujar una sola etiqueta, o
$ git push <remote> --tags
para empujar todas las etiquetas (o git push --tags
para empujar al control remoto predeterminado, por lo general origin
).
Este es un comportamiento muy intencionado, para hacer explícitas las etiquetas de empuje. Empujar etiquetas debería ser una elección consciente.
Resumiendo lo que escribió Junio C. Hamano (vinculado en comentarios de @Andre Miras)
Al buscar, está interactuando con un repositorio remoto que alguien ha publicado, lo que significa:
- el conjunto de etiquetas que existen allí es todo lo que el editor quería que la gente viera, y
- no solo usted sino otras personas también verán las mismas etiquetas.
En otras palabras, las etiquetas en los repositorios que obtiene están diseñadas para ser públicas y compartidas. Facilitará la comunicación entre desarrolladores si es fácil para todos obtener estas mismas etiquetas.
Es por eso que git fetch
automáticamente "sigue" las etiquetas, es decir, descarga las etiquetas al descargar las revisiones a las que apuntan; en otras palabras, descarga todas las etiquetas publicadas relevantes .
Al empujar, está empujando desde su repositorio de trabajo, que la mayoría de las veces no es público, y las etiquetas en ese repositorio no están diseñadas para ser públicas. Puede usar sus propias etiquetas locales para marcar su progreso, por lo que no tiene sentido empujar ciegamente todas las etiquetas en su repositorio al repositorio que está presionando para publicar sus cambios, cuyas etiquetas son, por definición, públicas.
Es por eso que debe presionar la etiqueta explícitamente, para marcar la etiqueta como pública.
Alternativamente, puede configurar el control remoto que empuja para que siempre empuje todas las etiquetas, por ejemplo, coloque algo así en su .git/config
:
["publicación" remota] # o como se llame
url = ...
push = + refs / heads / *: refs / heads / *
push = + refs / tags / *: refs / tags / *
Esto significa forzar el empuje de todas las cabezas (todas las ramas) y todas las etiquetas (si no desea forzar el empuje de las cabezas, elimine el prefijo '+' de refspec).
git push --follow-tags
ahora puede ser útil, mira mi respuesta a continuación