repositorio remota rama origin example eliminar crear actualizar git repository push git-push git-tag

remota - ¿Cómo se empuja una etiqueta a un repositorio remoto usando Git?



git push example (10)

He clonado un repositorio remoto de Git en mi computadora portátil, luego quise agregar una etiqueta para ejecutar

git tag mytag master

Cuando ejecuto git tag en mi laptop, se muestra la etiqueta mytag . Luego quiero enviar esto al repositorio remoto para tener esta etiqueta en todos mis clientes, así que ejecuto git push pero recibí el mensaje:

Todo actualizado

Y si voy a mi escritorio y ejecuto git pull y luego git tag no se muestran etiquetas.

También he intentado hacer un cambio menor en un archivo en el proyecto y luego enviarlo al servidor. Después de eso, pude extraer el cambio del servidor a mi computadora de escritorio, pero todavía no hay ninguna etiqueta al ejecutar la git tag en mi computadora de escritorio.

¿Cómo puedo insertar mi etiqueta en el repositorio remoto para que todos los equipos cliente puedan verla?


Estoy usando git push <remote-name> tag <tag-name> para asegurarme de que estoy presionando una etiqueta. Lo uso como: git push origin tag v1.0.1 . Este patrón se basa en la documentación ( man git-push ):

OPTIONS ... <refspec>... ... tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>.



Para ampliar la respuesta de Trevor , puede insertar una sola etiqueta o todas sus etiquetas a la vez.

Empuje una sola etiqueta

git push <remote> <tag>

Este es un resumen de la documentación relevante que explica esto (algunas opciones de comando omitidas por brevedad):

git push [[<repository> [<refspec>…]] <refspec>...

El formato de un parámetro <refspec> es ... la referencia de origen <src> , seguido de dos puntos : seguido de la referencia de destino <dst> ...

La <dst> indica qué referencia en el lado remoto se actualiza con este empuje ... Si se omite :<dst> , la misma referencia que <src> se actualizará ...

etiqueta <tag> significa lo mismo que refs/tags/<tag>:refs/tags/<tag> .

Empuja todas tus etiquetas a la vez

git push --tags <remote> # Or git push <remote> --tags

Aquí hay un resumen de la documentación relevante (algunas opciones de comando omitidas por brevedad):

git push [--all | --mirror | --tags] [<repository> [<refspec>…]] --tags

Todos los refs bajo refs/tags son empujados, además de refspecs explícitamente listados en la línea de comando.


Para empujar específico, una etiqueta sigue git push origin tag_name


Para empujar una sola etiqueta:

git push origin <tag_name>

Y el siguiente comando debe empujar todas las etiquetas (no recomendado):

git push --tags


Puedes empujar las etiquetas como esta git push --tags


Puedes empujar tus etiquetas locales simplemente con el comando git push --tags .

$ git tag # see tag lists $ git push origin <tag-name> # push a single tag $ git push --tags # push all local tags


Si estás trabajando en una sucursal:

git push --tags origin branch_name


git push --follow-tags

Esta es una opción sensata introducida en Git 1.8.3:

git push --follow-tags

Empuja tanto las confirmaciones como las etiquetas que son ambas:

  • anotado
  • alcanzable (un antepasado) desde los compromisos presionados

Esto es cuerdo porque:

Es por esas razones que se deben evitar las --tags .

Git 2.4 ha agregado la opción push.followTags para activar esa bandera de manera predeterminada que puede configurar con:

git config --global push.followTags true


No lo use, si solo está buscando un comando porque la intención principal de esta solución es presentarle una forma de solución.

Para hacer la vida más fácil, escribí un script git-cheat-sheet , que contiene algunos comandos útiles, que incluyen los siguientes:

./git_commands.sh -push_tag TAG_NAME