Marcar Hitos Importantes

GitGitBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

¡Bienvenido, explorador de Git! Hoy, vamos a sumergirnos en una de las características más útiles de Git para marcar puntos importantes en la historia de tu proyecto: las Etiquetas (Tags). Si alguna vez has deseado poder marcar fácilmente y volver a hitos importantes en tu proyecto, como versiones de lanzamiento, entonces las etiquetas de Git son exactamente lo que has estado buscando.

Las etiquetas en Git son como hitos en la línea de tiempo de tu proyecto. Te permiten marcar puntos específicos en la historia de tu repositorio como importantes. Esto es especialmente útil para marcar puntos de lanzamiento (v1.0, v2.0, etc.), o cualquier otro hito importante en tu proyecto.

En este laboratorio (LabEx), cubriremos:

  1. Creación de Etiquetas Ligeras (Lightweight Tags): Etiquetas rápidas y simples
  2. Creación de Etiquetas Anotadas (Annotated Tags): Objetos completos y más detallados en la base de datos de Git
  3. Listado de Etiquetas: Cómo ver todas las etiquetas en tu repositorio
  4. Visualización de Etiquetas (Checking Out Tags): Cómo ver tu proyecto en un punto etiquetado específico
  5. Eliminación de Etiquetas: Cómo eliminar etiquetas cuando ya no son necesarias

Al final de este laboratorio, estarás cómodo creando, administrando y utilizando etiquetas en tus proyectos de Git. Esto te dará una herramienta poderosa para organizar la historia de tu proyecto y hacer referencia fácilmente a puntos importantes en tu proceso de desarrollo.

¡Empecemos y comencemos nuestro viaje al mundo de las etiquetas de Git!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/SetupandConfigGroup -.-> git/init("Initialize Repo") git/BasicOperationsGroup -.-> git/commit("Create Commit") git/BranchManagementGroup -.-> git/checkout("Switch Branches") git/BranchManagementGroup -.-> git/tag("Git Tags") subgraph Lab Skills git/init -.-> lab-387493{{"Marcar Hitos Importantes"}} git/commit -.-> lab-387493{{"Marcar Hitos Importantes"}} git/checkout -.-> lab-387493{{"Marcar Hitos Importantes"}} git/tag -.-> lab-387493{{"Marcar Hitos Importantes"}} end

Configuración de tu espacio de trabajo

Antes de comenzar a etiquetar, configuraremos un espacio de trabajo con algunos commits para etiquetar. Crearemos un nuevo directorio, inicializaremos un repositorio de Git y agregaremos algunos archivos con múltiples commits para simular el desarrollo de un proyecto.

Abre tu terminal y escribe estos comandos:

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

Ahora, creemos algunos archivos y hagamos 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"

Desglosemos lo que acabamos de hacer:

  1. Creamos un archivo README y hicimos nuestro primer commit.
  2. Creamos un archivo JavaScript con una función de saludo y lo confirmamos.
  3. Agregamos una constante PI al mismo archivo y lo confirmamos.
  4. Finalmente, agregamos una función de cálculo de área y la confirmamos.

Ahora tenemos un repositorio con algo de historia para etiquetar.

Creación de Etiquetas Ligeras (Lightweight Tags)

Comencemos creando una etiqueta ligera. Las etiquetas ligeras son básicamente un puntero a un commit específico; piensa en ellas como una rama (branch) que no cambia. Son simples 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 el hash del commit:

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 mostrará una lista de tus commits. Copia el hash del commit "Add greeting function", que en este caso es 7411f09 (utiliza el hash real).

Presiona q para salir de la vista del registro (log), y luego crea una etiqueta para ese commit:

git tag v0.0.1 <commit-hash>

Reemplaza <commit-hash> con el hash real que encontraste.

git tag
v0.0.1
v0.1

Las etiquetas ligeras son excelentes para marcadores temporales o para uso personal. Sin embargo, no almacenan información adicional. Para etiquetado más robusto, especialmente para lanzamientos públicos, es posible que desees utilizar etiquetas anotadas (annotated tags), que cubriremos a continuación.

Creación de Etiquetas Anotadas (Annotated Tags)

Las etiquetas anotadas se almacenan como objetos completos en la base de datos de Git. Contienen el nombre del etiquetador, el correo electrónico, la fecha y un mensaje de etiquetado. También se pueden firmar y verificar con GNU Privacy Guard (GPG). Esto las hace ideales para lanzamientos públicos y cualquier etiqueta para la que desees incluir información adicional.

Para crear una etiqueta anotada, utiliza la bandera -a con el comando 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 utilizando el comando git show:

git show v1.0

Esto mostrará la información del etiquetador, la fecha en que se etiquetó el commit, el mensaje de anotación y la información del commit.

Se recomienda utilizar etiquetas anotadas para lanzamientos públicos porque incluyen mucha más información y se pueden verificar. Son una forma de decir "este punto en la historia es importante y aquí está el por qué".

Listado de Etiquetas (Tags)

A medida que tu proyecto crece, es posible que acumules bastantes etiquetas. Git ofrece formas sencillas de listar y buscar entre tus etiquetas.

Para listar todas las etiquetas en tu repositorio:

git tag

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

Si deseas buscar etiquetas que coincidan con un patrón en particular, puedes utilizar 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 sobre tus etiquetas, incluyendo los mensajes de anotación de las etiquetas anotadas, puedes utilizar:

git tag -n

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

Recuerda que las etiquetas no se envían automáticamente a los repositorios remotos. Si deseas compartir tus etiquetas, debes enviarlas explícitamente, lo cual cubriremos en un laboratorio (LabEx) futuro.

Acceso a Etiquetas (Checking Out Tags)

Una de las características más útiles de las etiquetas es la capacidad de ver fácilmente tu proyecto en el estado de una etiqueta específica. Esto es excelente para cosas como reproducir errores (bugs) de una versión específica o revisar el código exacto que se incluyó en un lanzamiento.

Para acceder a una etiqueta, puedes utilizar el comando git checkout:

git checkout v1.0

Esto pondrá tu repositorio en un estado de "HEAD desacoplado" (detached HEAD) en el commit al que apunta v1.0. Esto significa que puedes explorar, realizar cambios experimentales y confirmarlos, y descartar cualquier commit que realices en este estado sin afectar a ninguna rama (branch).

Si deseas realizar cambios y crear una nueva rama para conservar estos cambios, puedes utilizar:

git checkout -b branch-name v1.0

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

Recuerda que, cuando hayas terminado de ver el código en una etiqueta específica, puedes volver al último estado de tu rama principal con:

git checkout master

Ten precaución cuando estés en un estado de "HEAD desacoplado". Cualquier commit que realices quedará huérfano (no estará en ninguna rama) cuando accedas a una rama diferente, a menos que crees explícitamente una nueva rama para conservarlos.

Eliminación de Etiquetas (Deleting Tags)

A veces, 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 eliminar una etiqueta en tu repositorio local, puedes utilizar:

git tag -d v0.0.1

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

Ten cuidado al eliminar etiquetas. Otros usuarios pueden estar utilizando estas etiquetas como puntos de referencia. En general, es una buena práctica comunicarte con tu equipo antes de eliminar etiquetas compartidas.

Resumen

¡Felicidades, etiquetador (tagger) de Git! Acabas de dominar el arte de usar etiquetas (tags) en Git. Repasemos los conceptos clave que hemos cubierto:

  1. Creación de Etiquetas Ligeras (Lightweight Tags): Etiquetas rápidas y fáciles de usar para fines temporales o personales.
  2. Creación de Etiquetas Anotadas (Annotated Tags): Etiquetas más detalladas con metadatos adicionales, perfectas para marcar hitos importantes como lanzamientos.
  3. Listado de Etiquetas (Listing Tags): Cómo ver y buscar entre las etiquetas de tu repositorio.
  4. Acceso a Etiquetas (Checking Out Tags): Cómo ver tu proyecto en el estado de una etiqueta específica.
  5. Eliminación de Etiquetas (Deleting Tags): Cómo eliminar etiquetas cuando ya no son necesarias.

Las etiquetas son una característica poderosa en Git que te permite marcar puntos importantes en la historia de tu proyecto. Son especialmente útiles para marcar puntos de lanzamiento y otros hitos importantes.

Recuerda:

  • Utiliza etiquetas ligeras para puntos de referencia temporales o personales.
  • Utiliza etiquetas anotadas para lanzamientos públicos y cuando quieres incluir información adicional con la etiqueta.
  • Ten precaución cuando estés en un estado de "HEAD desacoplado" (detached HEAD) después de acceder a una etiqueta.
  • Ten cuidado al eliminar etiquetas, especialmente si se han enviado a un repositorio compartido.

A medida que continúes tu viaje con Git, descubrirás que las etiquetas son una herramienta invaluable para gestionar la línea de tiempo de tu proyecto. Proporcionan puntos de referencia claros que pueden ayudarte y a tu equipo a navegar por la historia de tu proyecto con facilidad.

¡Que disfrutes etiquetando y que tus hitos de proyecto siempre estén claramente marcados!