Marcado de Hitos Importantes

GitBeginner
Practicar Ahora

Introducción

¡Bienvenido, explorador de Git! Hoy vamos a sumergirnos en una de las funciones más útiles de Git para señalar momentos clave en la historia de tu proyecto: las Etiquetas (Tags). Si alguna vez has deseado marcar y volver fácilmente a hitos importantes, como las versiones de lanzamiento, las etiquetas de Git son exactamente lo que necesitas.

Las etiquetas en Git funcionan como señales en la línea de tiempo de tu proyecto. Te permiten identificar puntos específicos en el historial de tu repositorio como hitos de gran relevancia. Esto resulta especialmente útil para marcar versiones de lanzamiento (v1.0, v2.0, etc.) o cualquier otro avance significativo.

En esta práctica, aprenderás a:

  1. Crear Etiquetas Ligeras: Etiquetas rápidas y sencillas.
  2. Crear Etiquetas Anotadas: Objetos completos y detallados dentro de la base de datos de Git.
  3. Listar Etiquetas: Cómo visualizar todas las etiquetas de tu repositorio.
  4. Extraer (Checkout) Etiquetas: Cómo ver tu proyecto en un punto específico etiquetado.
  5. Eliminar Etiquetas: Cómo quitar etiquetas cuando ya no son necesarias.

Al finalizar este laboratorio, te sentirás cómodo creando, gestionando y utilizando etiquetas en tus proyectos de Git. Esto te proporcionará una herramienta poderosa para organizar el historial de tu trabajo y referenciar fácilmente puntos críticos en tu proceso de desarrollo.

¡Comencemos nuestro viaje por el mundo de las etiquetas de Git!

Configuración de tu Espacio de Trabajo

Antes de empezar a etiquetar, vamos a preparar un espacio de trabajo con algunos commits. Crearemos un directorio nuevo, inicializaremos un repositorio de Git y añadiremos algunos archivos con múltiples commits para simular el desarrollo de un proyecto real.

Abre tu terminal y escribe los siguientes comandos:

cd ~/project
mkdir git-tags-lab
cd git-tags-lab
git init

Ahora, vamos a crear algunos archivos y realizar una serie de commits; puedes copiar y pegar los siguientes comandos:

echo "## My Awesome Project" > README.md
git add README.md
git commit -m "Initial commit"

echo "function greet(name) { console.log('Hello, ' + name + '!'); }" > app.js
git add app.js
git commit -m "Add greeting function"

echo "const PI = 3.14159;" >> app.js
git add app.js
git commit -m "Add PI constant"

echo "function calculateArea(radius) { return PI * radius * radius; }" >> app.js
git add app.js
git commit -m "Add area calculation function"

Analicemos lo que acabamos de hacer:

  1. Creamos un archivo README y realizamos nuestro commit inicial.
  2. Creamos un archivo JavaScript con una función de saludo y lo confirmamos.
  3. Añadimos una constante PI al mismo archivo y realizamos otro commit.
  4. Finalmente, añadimos una función para calcular el área y la confirmamos.

¡Ahora tenemos un repositorio con historial suficiente para empezar a etiquetar!

Creación de Etiquetas Ligeras

Comencemos creando una etiqueta ligera (lightweight tag). Las etiquetas ligeras son básicamente un puntero a un commit específico; piénsalo como una rama que no cambia de posición. Son muy sencillas de crear y usar, lo que las hace perfectas para uso temporal o personal.

Para crear una etiqueta ligera, utiliza el comando git tag seguido del nombre de la etiqueta:

git tag v0.1

Esto crea una etiqueta llamada v0.1 que apunta al commit actual (HEAD).

También puedes crear una etiqueta ligera para un commit pasado especificando su hash:

git log --oneline
8197680 (HEAD -> master, tag: v0.1) Add area calculation function
d93ae1c Add PI constant
7411f09 Add greeting function
35d7df5 Initial commit

Esto te mostrará la lista de tus commits. Copia el hash del commit "Add greeting function", que en este ejemplo es 7411f09 (asegúrate de usar el hash real que aparezca en tu pantalla).

Presiona q para salir de la vista del log y luego crea la etiqueta para ese commit:

git tag v0.0.1 <commit-hash>

Sustituye <commit-hash> por el hash real que encontraste.

git tag
v0.0.1
v0.1

Las etiquetas ligeras son excelentes para marcas temporales. Sin embargo, no almacenan información adicional. Para un etiquetado más robusto, especialmente en lanzamientos públicos, es recomendable usar etiquetas anotadas, que veremos a continuación.

Creación de Etiquetas Anotadas

Las etiquetas anotadas se almacenan como objetos completos en la base de datos de Git. Contienen el nombre del autor, correo electrónico, fecha y un mensaje de etiquetado. También pueden ser firmadas y verificadas mediante GPG. Esto las hace ideales para lanzamientos públicos y para cualquier etiqueta en la que desees incluir información extra.

Para crear una etiqueta anotada, utiliza el modificador -a con git tag:

git tag -a v1.0 -m "First major release"

Esto crea una etiqueta anotada llamada v1.0 con el mensaje "First major release".

Puedes ver los detalles de una etiqueta anotada usando el comando git show:

git show v1.0

Esto mostrará la información de quién etiquetó, la fecha, el mensaje de la anotación y los detalles del commit.

Se recomienda el uso de etiquetas anotadas para versiones oficiales porque incluyen mucha más información y permiten la verificación. Es una forma de decir: "este punto en la historia es importante y aquí explico por qué".

Listar Etiquetas

A medida que tu proyecto crezca, podrías acumular bastantes etiquetas. Git ofrece formas sencillas de listarlas y realizar búsquedas entre ellas.

Para listar todas las etiquetas de tu repositorio:

git tag

Esto mostrará todas tus etiquetas en orden alfabético.

Si quieres buscar etiquetas que coincidan con un patrón particular, puedes usar la opción -l (o --list) con un comodín:

git tag -l "v1.*"

Esto listará todas las etiquetas que comiencen con "v1.".

Para obtener información más detallada, incluyendo las primeras líneas de los mensajes de anotación, puedes usar:

git tag -n

Esto muestra tus etiquetas junto con la primera línea de su mensaje de anotación (o el mensaje del commit en el caso de las etiquetas ligeras).

Recuerda que las etiquetas no se envían automáticamente a los repositorios remotos. Si quieres compartir tus etiquetas, necesitas subirlas explícitamente, algo que trataremos en prácticas futuras.

Extraer (Checkout) Etiquetas

Una de las funciones más útiles de las etiquetas es la capacidad de ver tu proyecto exactamente como estaba en el momento de una etiqueta específica. Esto es ideal para reproducir errores de una versión concreta o revisar el código exacto que se incluyó en un lanzamiento.

Para extraer una etiqueta, puedes usar el comando git checkout:

git checkout v1.0

Esto pondrá tu repositorio en un estado de "HEAD desprendido" (detached HEAD) en el commit al que apunta v1.0. Esto significa que puedes explorar, realizar cambios experimentales y confirmarlos, pero cualquier commit que hagas en este estado no afectará a ninguna rama a menos que crees una nueva.

Si deseas realizar cambios y crear una nueva rama para conservarlos, puedes usar:

git checkout -b branch-name v1.0

Esto crea una nueva rama llamada branch-name basada en el estado del proyecto en la etiqueta v1.0.

Recuerda que, cuando hayas terminado de revisar el código en una etiqueta específica, puedes volver al estado más reciente de tu rama principal con:

git checkout master

Ten precaución cuando estés en estado de "HEAD desprendido". Cualquier commit que realices quedará huérfano (no pertenecerá a ninguna rama) cuando cambies a otra rama, a menos que crees explícitamente una rama para conservarlos.

Eliminar Etiquetas

En ocasiones, es posible que necesites eliminar una etiqueta. Quizás se creó por error o ya no es relevante. Git facilita la eliminación de etiquetas.

Para borrar una etiqueta en tu repositorio local, puedes usar:

git tag -d v0.0.1

Esto elimina la etiqueta v0.0.1 de tu repositorio local.

Sé cuidadoso al eliminar etiquetas. Otros usuarios podrían estar usándolas como puntos de referencia. Generalmente, es una buena práctica comunicarse con el equipo antes de borrar etiquetas compartidas.

Resumen

¡Felicidades! Has dominado el arte de usar etiquetas en Git. Repasemos los conceptos clave que hemos aprendido:

  1. Creación de Etiquetas Ligeras: Etiquetas rápidas para referencias temporales o personales.
  2. Creación de Etiquetas Anotadas: Etiquetas detalladas con metadatos adicionales, ideales para hitos importantes como lanzamientos de versiones.
  3. Listar Etiquetas: Cómo visualizar y buscar entre las etiquetas de tu repositorio.
  4. Extraer Etiquetas: Cómo visualizar tu proyecto en el estado de una etiqueta específica.
  5. Eliminar Etiquetas: Cómo quitar etiquetas cuando ya no son necesarias.

Las etiquetas son una característica potente de Git que te permite marcar puntos clave en la historia de tu proyecto. Son indispensables para gestionar versiones y otros hitos significativos.

Recuerda:

  • Usa etiquetas ligeras para referencias personales o temporales.
  • Usa etiquetas anotadas para lanzamientos públicos y cuando necesites incluir información adicional.
  • Ten cuidado con el estado de "HEAD desprendido" tras extraer una etiqueta.
  • Sé precavido al borrar etiquetas, especialmente si ya han sido subidas a un repositorio compartido.

A medida que continúes tu camino con Git, descubrirás que las etiquetas son una herramienta invaluable para gestionar la línea de tiempo de tu proyecto, facilitando la navegación por el historial tanto para ti como para tu equipo.

¡Feliz etiquetado, y que los hitos de tu proyecto siempre estén bien señalizados!