En la configuración remota git por defecto que tiene que empujar las etiquetas explícitamente (mientras están fue a buscar automáticamente junto con commits que apuntan). Es necesario utilizar
$ git push <remote> tag <tagname>
para empujar una sola etiqueta, o
$ git push <remote> --tags
empujar todas las etiquetas (o git push --tags
a empujar a los valores predeterminados a distancia, por lo general origin
).
Este es un comportamiento muy intencionado, para que las etiquetas de empuje sean explícitas. Las etiquetas de empuje deben ser generalmente una elección consciente.
Resumiendo lo Junio C. Hamano wrote (vinculado en los comentarios de acuerdo @Andre Miras)
Cuando ir a buscar, que 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 las personas vean, y
- no solo usted sino otras personas también verán las mismas etiquetas.
En otras palabras, las etiquetas en los repositorios de las que extrae 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.
Por eso git fetch
automáticamente "sigue" etiquetas, es decir, que descarga las etiquetas al descargar las revisiones a los que apuntan - en otras palabras, todas las descargas relevantes publicados etiquetas.
Al presionar, está presionando 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 presionar siempre todas las etiquetas, p.poner algo así en tu .git/config
:
[remote "publish"] # or whatever it is named
url = ...
push = +refs/heads/*:refs/heads/*
push = +refs/tags/*:refs/tags/*
Esto significa fuerza de empuje todas las cabezas de todas las ramas() y todas las etiquetas (si no desea que la fuerza de empuje de cabezas, eliminar el prefijo '+' desde refspec) .
'git push---follow tags' ahora puede ser útil, ver [mi respuesta a continuación] (http://stackoverflow.com/a/16164809/6309) – VonC
duplicado posible de [Cómo ¿Puedo insertar una etiqueta en un repositorio remoto usando Git?] (http://stackoverflow.com/questions/5195859/how-can-i-push-a-tag-to-a-remote-repository-using-git) . –
Estoy de acuerdo con el duplicado: aunque esto es más antiguo, la otra pregunta se plantea mejor. –