git tag
Crea, lista y elimina tags
El comando 'git tag' da un nombre fijo a un commit, normalmente una versión como v1.0. A diferencia de una rama, un tag nunca se mueve. Un tag ligero es solo un nombre; un tag anotado (-a) es un objeto completo con quien lo creó, una fecha y un mensaje, y es el tipo recomendado para versiones. Los tags no se suben automáticamente: súbelos con git push origin <tag>.
Sinopsis
git tag [-a | -s] [-f] [-m <msg>] <tagname> [<commit>]
git tag -d <tagname>...
git tag [-n[<num>]] -l [<pattern>...]Opciones
Elegir la opción adecuada
Ligero frente a anotado
Dos tipos de tags
| Comando | Guarda | Uso |
|---|---|---|
git tag v1.0 | Solo el nombre | Marcadores privados |
git tag -a v1.0 -m "..." | Autor, fecha, mensaje | Versiones publicadas |
Tag frente a rama
Ambos nombran un commit
| Comando | ¿Avanza con cada commit? | ¿Lo sube git push? |
|---|---|---|
Branch | Sí | Sí (la rama actual) |
Tag | Nunca | No, súbelo explícitamente |
Ejemplos
Etiquetar el commit actual
git tag v1.0Un tag ligero llamado v1.0.
Tag anotado
git tag -a v1.0 -m "First release"Un tag con autor, fecha y mensaje.
Subir un tag
git push origin v1.0Comparte el tag en el remoto.
Listar etiquetas
git tag -l "v1.*"Lista los tags que coinciden con un patrón.
Ejemplos de flujos de trabajo
git switch main && git pullEstar en el main más reciente
git tag -a v1.0 -m "First release"Crear el tag de la versión
git push origin v1.0Compartirlo
Solución de problemas
fatal: tag 'v1.0' already exists
Causa: El nombre ya está usado
Elige otro nombre, o elimínalo primero (git tag -d v1.0)
Mi tag no está en GitHub
Causa: git push no envía los tags
git push origin v1.0, o git push --tags
Un tag eliminado vuelve tras un fetch
Causa: Sigue existiendo en el remoto
Elimínalo también allí: git push origin --delete v1.0
Consejos y trampas
Buenas prácticas
- ✓Usa tags anotados para las versiones.
- ✓Sigue el versionado semántico (v1.2.3).
- ✓Nunca muevas ni reutilices un tag una vez publicado.
Errores comunes
- ✗Esperar que git push envíe los tags — súbelos explícitamente o usa --follow-tags.
- ✗Usar tags ligeros para versiones: no guardan autor, fecha ni mensaje.
- ✗Mover un tag que otros ya descargaron.
Preguntas frecuentes
git switch --detach v1.0, o crea una rama a partir de él: git switch -c hotfix v1.0.
git push --tags (o git push --follow-tags para los tags anotados de los commits enviados).
Nombra un commit a partir del tag más cercano, p. ej. v1.0-3-g1a2b3c4.