Breve nota: Se parte de mi newsletter semanal. Va a estar enfocado compartir recursos increíbles sobre desarrollo frontend (Artículos, Videos, Noticias, etc.).

Git es un mundo realmente increíble que no deja de sorprenderme y digo increíble porque siempre descubro cosas nuevas e interesantes. El día de hoy aprenderás algo muy básico pero muy interesante e indispensable para un proyecto que sabes que tendrá continuidad.

Git te permite crear algo llamado etiqueta o tag que no son más que simples puntos específicos importantes en la historia de nuestro proyecto, generalmente las personas lo usan para marcar puntos de una versión (ej: V1.0).

Creando una etiqueta

Con git podemos crear diferentes tipos de etiquetas, por lo general se recomienda crear etiquetas anotadas para así disponer de mucha más información; pero si por alguna razón necesitas de una etiqueta temporal y no requieres guardar mucha información, existe la etiqueta ligera.

Etiquetas anotadas

Las etiquetas anotadas son almacenadas como objetos completos dentro de la base de datos de Git. Para crearla es muy simple, solo tenemos que especificar -a en el comando tag:

$ git tag -a v1.0 -m 'Esta es mi etiqueta 1.0'

El parámetro -m solo especifica un mensaje, el cual se guarda junto con la etiqueta, si tú no especificas el mensaje para la etiqueta, git lanzara un editor para escribirlo.

Puedes ver la información de la etiqueta usando el comando git show:

$ git show v1.0
tag v1.0
Tagger: Fili Martínez <fili06604@gmail.com>
Date:   Thu May 7 23:45:08 2015 -0500

Versión 1.0

commit 612d406223514946aa9fbccebd37ac992ea3e30c
Author: Filiberto Martínez <fili06604@gmail.com>
Date:   Fri Dec 12 19:56:03 2014 -0600

    Cambio imagen mia

Etiquetas ligeras

Solo es otra forma de crear etiquetas, pero con la diferencia de que no se guardara la misma información que en una etiqueta anotada, para crearla solo basta con no añadir las opciones -a, -s o -m:

$ git tag v1.0-lw

Si ejecutas git show no abra tanta información como en una etiqueta anotada:

$ git show v1.0-lw
commit 612d406223514946aa9fbccebd37ac992ea3e30c
Author: Filiberto Martínez <fili06604@gmail.com>
Date:   Fri Dec 12 19:56:03 2014 -0600

    Cambio imagen mia

Etiquetas firmadas

Puedes firmar tus etiquetas con GPG, siempre y cuando tengas una clave privada. Solo debes de usar -s en lugar de -a:

$ git tag -s v1.0 -m 'Mi etiqueta firmada 1.0'

Ahora si volvemos a ejecutar git show, en esa etiqueta podemos ver la firma GPG:

$ git show v1.0
tag v1.0
Tagger: Fili Martínez <fili06604@gmail.com>
Date:   Thu May 7 23:45:08 2015 -0500

my signed 1.0 tag
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)

iEYEABECAAYFAkmQurIACgkQON3DxfchxFr5cACeIMN+ZxLKggJQf0QYiQBwgySN
Ki0An2JeAVUCAiJ7Ox6ZEtK+NvZAj82/
=WryJ
-----END PGP SIGNATURE-----
commit 612d406223514946aa9fbccebd37ac992ea3e30c
Author: Filiberto Martínez <fili06604@gmail.com>
Date:   Fri Dec 12 19:56:03 2014 -0600

    Cambio imagen mia

Lista de etiquetas

En algún punto vas a necesitar listar tus etiquetas, es algo muy sencillo, solo tienes que ejecutar el comando: git tag:

$ git tag
v1.0
v1.0.1

Pero es no es todo, incluso puedes realizar búsquedas de acuerdo a un patrón, por ejemplo, si solo necesitas la serie 1.0.5, puedes ejecutar:

$ git tag -l 'v1.0.5.*'
v1.0.5.1
v1.0.5.2
v1.0.5.3
v1.0.5.4

Especificando etiquetas

Seguramente ahora te preguntas: ¿Fili qué pasa si yo, ya hice mis commits?, pues con git puedes especificar en donde se va a aplicar una etiqueta gracias al código SHA (Secure Hash Algorithm):

$ git tag -a v1.0 -m 'Version 1.0' 612d406

Compartiendo tus etiquetas

El comando git push no transfiere las etiquetas a servidores remotos, tienes que enviarlas explícitamente después de haberlas creado, con el comando git push origin [etiqueta].

$ git push origin v1.0

Oye, ¿Pero qué pasa si tengo muchas etiquetas?

Puedes usar la opción --tags en el comando git push, esto hará que se transfieran todas las etiquetas que no están en el servidor remoto:

$ git push origin --tags

El servidor remoto puede estar en GitHub, Bitbucket, Gitlab o en cualquier otro lado.

Github tags

A partir de esto cuando alguien clone o reciba tu repositorio, igual tendrá todas tus etiquetas.

Eliminando etiquetas

Quizás en algún momento vas a cometer el error de poner una etiqueta donde no debías o algo similar, no te preocupes con la opción -d puedes eliminar etiquetas:

$ git tag -d v1.0

De esta forma ya no corres el riesgo de poner una etiqueta donde no debías.

Ahora que ya sabes usar etiquetas, te invito a que las pruebes con tus proyectos, esto ayuda a tener una muy buena organización y es una buena practica para que explotes aún más git, cualquier duda que tengas me la puedes dejar en los comentarios.

Sé productivo, aprende algo nuevo y comparte tu conocimiento con el mundo ;) . . .