Saltar al contenido

etiqueta git

Descripción

Las etiquetas son referencias que apuntan a commits concretos en el historial de Git. La función principal de las etiquetas es capturar un punto específico en la historia, normalmente para marcar una versión publicada. Las etiquetas son inmutables; una vez creadas, no siguen el historial de commits.

gittag

Crear una etiqueta de Git

Para crear una etiqueta de Git, ejecuta el comando siguiente:

git tag

bash
git tag <name-of-tag>

Al crear una etiqueta, sustituye <name-of-tag> por un identificador semántico del estado del repositorio. Git admite dos tipos de etiquetas: anotadas y ligeras. La principal diferencia entre ellas es la cantidad de metadatos que almacenan.

Etiquetas anotadas

Git almacena las etiquetas anotadas como objetos completos en su base de datos. Contienen metadatos adicionales, como el nombre, el correo electrónico y la fecha de quien etiqueta. Al igual que los commits, las etiquetas anotadas incluyen un mensaje de etiquetado. También pueden firmarse y verificarse mediante GPG (GNU Privacy Guard) por motivos de seguridad.

Al ejecutar el comando siguiente se crea una nueva etiqueta anotada con el ID v1.3. Después se abrirá el editor de texto predeterminado configurado, pidiéndote que introduzcas un mensaje de etiquetado.

git annotated tag

bash
git tag -a v1.3

Etiquetas ligeras

El comando siguiente crea una etiqueta ligera identificada como v1.3-lw. Las etiquetas ligeras se crean sin las opciones -a, -s o -m. Simplemente almacenan un puntero a un objeto commit específico en el directorio .git/refs/tags/.

git lightweight tag

bash
git tag v1.3-lw

Lista de etiquetas

Ejecuta el comando siguiente para listar las etiquetas almacenadas:

git tag command

bash
git tag

Como resultado, verás una salida similar a esta:

git tag output

bash
v0.10.0
v0.10.0-rc1
v0.11.0
v0.11.0-rc1
v0.11.1
v0.11.2
v0.12.0
v0.12.0-rc1
v0.12.1
v0.12.2
v0.13.0
v0.13.0-rc1
v0.13.0-rc2

Puedes usar la opción -l con una expresión comodín para filtrar la lista de etiquetas:

git tag with wildcard

bash
git tag -l *-rc*
v0.10.0-rc1
v0.11.0-rc1
v0.12.0-rc1
v0.13.0-rc1
v0.13.0-rc2
v0.14.0-rc1
v0.9.0-rc1
v15.0.0-rc.1
v15.0.0-rc.2
v15.4.0-rc.3

Etiquetar commits antiguos

De forma predeterminada, git tag crea una etiqueta en el commit al que hace referencia HEAD. También puedes pasar una referencia de commit específica para etiquetar un commit anterior. Ejecuta el comando git log para ver commits antiguos. En el ejemplo siguiente, se usa un commit de fusión para la nueva etiqueta. Para hacer referencia a un commit específico, proporciona su hash SHA:

git log

bash
git log --pretty=oneline
29389857951b64cf874c3557a0f3547bd83b899a Merging branch 'crossword'
b4a5697498bd301d84096da251c98a07c7723e65 init method for crossword
89f3aaab4479697da7686c15f77a3d64d9165190 little changes in logic
3a4a271eda8725415634dd79daabbc4d9b6008e Merging branch 'how-it-works'

Ejecuta el comando git tag para crear una nueva etiqueta anotada con ID v1.2 para el commit seleccionado en el ejemplo anterior:

git tag for old commits

bash
git tag -a v1.2 29389857951b64cf874c3557a0f3547bd83b899a

Reemplazar etiquetas antiguas

Intentar crear una etiqueta con un identificador existente provocará un error. Usa la opción -f (force) para actualizar una etiqueta existente, lo que sobrescribirá su contenido anterior.

git tag replacing old tags

bash
git tag -a -f v1.3 29389857951b64cf874c3557a0f3547bd83b899a

Enviar etiquetas al remoto

Para enviar una etiqueta a un repositorio remoto, pasa el nombre de la etiqueta al comando git push. Esto garantiza que otros usuarios que clonen el repositorio recibirán la nueva etiqueta.

git tag, pushing to remote

bash
git push origin v1.3
Counting objects: 9, done.
Delta compression using up to 5 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (12/12), 2.05 KiB | 0 bytes/s, done.
Total 12 (delta 3), reused 0 (delta 0)
To [email protected]:gr8/gittagdocs.git
* [new tag] v1.3 -> v1.3

Comprobar etiquetas

Puedes usar el comando git checkout para inspeccionar un commit etiquetado. Esto coloca el repositorio en un estado de HEAD separado. Cualquier nuevo commit realizado aquí no pertenecerá a una rama y solo será accesible mediante su hash SHA.

git tag, checking over tags

bash
git checkout v1.3

Eliminar etiquetas

Puedes eliminar una etiqueta pasando la opción -d y el identificador de la etiqueta a git tag. Consulta el ejemplo siguiente:

git tag, deleting tags

bash
git tag
v1
v2
v3
git tag -d v1
git tag
v2
v3

Práctica

What are the functionalities and options of the 'git tag' command in Git?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.