IronWoods.es

Desarrollo web

Blog / Git / Tags - Etiquetando la historia

La historia de commits esta reflejada en una sucesión de pequeñas anotaciones donde puede ser complicado encontrar puntos claves en el desarrollo, podemos marcarlos añadiendo etiquetas.

Uso básico de etiquetas Git

Las etiquetas suelen usarse en combinación con semver, y si bien no es necesario, si se recomienda usar nombres significativos, ya que se utilizan como identificadores.

imagen del listado de etiquetas en Github
Vista de etiquetas en Github

Añadir una etiqueta:

git tag v.0.0.1

Esta etiqueta tomaría como comentario el mensaje del último commit.


Añadir una etiqueta comentada:

git tag v.0.0.1 -m 'primera etiqueta'


Añadir una etiqueta con comentario y descripción:

git tag v.0.0.1 -m 'primera etiqueta' -m 'esto es una descripción para la etiqueta'


Modificar una etiqueta:

git tag v.0.0.1 -m 'mi primera etiqueta' -f

Usaremos el identificador, v.0.0.1, para modificar el mensaje. Para cambiar el identificador tendríamos que eliminar la etiqueta y volver a crearla.


Eliminar una etiqueta (local):

git tag v.0.0.1 -d

git tag v.0.0.1 --delete


Eliminar todas las etiquetas (locales):

git tag -d $(git tag -l)


Listar las etiquetas:

git tag

git tag -l

git tag --list


Se produce una salida como esta:

v.0.0.1

v.0.0.2

v.0.0.3


Listar las etiquetas con sus comentarios:

git tag -n


Se produce una salida como esta:

v.0.0.1     Primera etiqueta

v.0.0.2     Otra etiqueta

v.0.0.3     Fin del ejemplo


Listar las etiquetas con comentarios y descripciónes:

git tag -n3

Consideraciones

Las etiquetas de un repositorio constituyen un histórico paralelo al histórico de commits, no forman parte del mismo, sino que están relacionadas con él.

Cuando añadimos una etiqueta se asocia al último commit, sin importar donde estemos, es decir en cualquier momento podemos ir atrás en la historia para añadir una etiqueta.

Las etiquetas se crean localmente y no se envían junto con los commits al repositorio remoto, debemos hacer un push explícito:

git push --tags

Las etiquetas son independientes de las ramas del repositorio. Al crear una etiqueta, existirá en todas las ramas del repositorio independientemente de sí son o no fusionadas.