Cómo comprobar si una etiqueta (tag) de Git apunta a un commit específico

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

En este laboratorio, aprenderás cómo comprobar si una etiqueta (tag) de Git apunta a un commit específico. Exploraremos el comando git rev-parse para recuperar el hash del commit asociado a una etiqueta y luego lo compararemos con el hash del commit real obtenido del registro (log) de Git.

A través de pasos prácticos, crearás un repositorio Git simple, agregarás un archivo, realizarás un commit y crearás una etiqueta. Luego, utilizarás git rev-parse para encontrar el hash del commit de la etiqueta y verificar su precisión comparándolo con el hash del commit obtenido del registro de Git. Finalmente, probarás este proceso con diferentes etiquetas para consolidar tu comprensión.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/commit("Create Commit") git/BranchManagementGroup -.-> git/log("Show Commits") git/BranchManagementGroup -.-> git/tag("Git Tags") subgraph Lab Skills git/add -.-> lab-560115{{"Cómo comprobar si una etiqueta (tag) de Git apunta a un commit específico"}} git/commit -.-> lab-560115{{"Cómo comprobar si una etiqueta (tag) de Git apunta a un commit específico"}} git/log -.-> lab-560115{{"Cómo comprobar si una etiqueta (tag) de Git apunta a un commit específico"}} git/tag -.-> lab-560115{{"Cómo comprobar si una etiqueta (tag) de Git apunta a un commit específico"}} end

Ejecutar git rev-parse Tag

En este paso, aprenderemos cómo utilizar el comando git rev-parse para encontrar el hash del commit asociado a una etiqueta (tag) específica. Las etiquetas en Git son como marcadores permanentes en tu línea de tiempo, generalmente se utilizan para marcar puntos de lanzamiento (como v1.0, v2.0, etc.).

Primero, asegúrate de estar en el directorio de tu proyecto. Abre tu terminal y navega hasta el directorio my-time-machine:

cd ~/project/my-time-machine

Ahora, creemos un archivo simple y hagamos un commit. Esto nos dará algo para etiquetar.

echo "This is the first version." > version.txt
git add version.txt
git commit -m "Add initial version file"

Después del commit, deberías ver una salida similar a esta:

[master <commit-hash>] Add initial version file
 1 file changed, 1 insertion(+)
 create mode 100644 version.txt

Ahora, creemos una etiqueta para este commit. La llamaremos v1.0.

git tag v1.0

Este comando no produce ninguna salida, pero ha creado una etiqueta ligera (lightweight tag) llamada v1.0 que apunta al commit actual.

Para ver las etiquetas en tu repositorio, puedes utilizar git tag:

git tag

Deberías ver:

v1.0

Ahora, usemos git rev-parse para encontrar el hash del commit al que apunta la etiqueta v1.0.

git rev-parse v1.0

Este comando mostrará el hash completo del commit:

<full-commit-hash>

El comando git rev-parse es muy útil para convertir varias referencias de Git (como etiquetas, ramas o incluso hashes de commit parciales) en su hash de commit completo. Esto es útil cuando necesitas el identificador exacto de un commit para scripting u otras operaciones de Git.

Comparar con el hash del commit

En el paso anterior, utilizamos git rev-parse v1.0 para obtener el hash del commit asociado a la etiqueta (tag) v1.0. Ahora, comparemos este hash con el hash del commit real obtenido del registro (log) de Git para confirmar que son iguales.

Primero, asegúrate de que todavía estés en el directorio ~/project/my-time-machine.

cd ~/project/my-time-machine

Ahora, veamos el registro de commits utilizando git log --oneline. La opción --oneline muestra cada commit en una sola línea, lo cual es útil para ver rápidamente el historial de commits y sus hashes cortos.

git log --oneline

Deberías ver una salida similar a esta:

<short-commit-hash> (HEAD -> master, tag: v1.0) Add initial version file

Observa el hash corto del commit al principio de la línea. Esta es la versión abreviada del hash completo del commit. También puedes ver que la etiqueta v1.0 se lista junto a este commit, lo que indica que la etiqueta apunta a este commit específico.

Ahora, obtengamos el hash completo del commit utilizando git rev-parse v1.0 de nuevo:

git rev-parse v1.0

Esto mostrará el hash completo del commit:

<full-commit-hash>

Compara el hash completo del commit de git rev-parse con el hash corto del commit de git log --oneline. El hash corto son solo los primeros caracteres del hash completo. Ambos se refieren al mismo commit.

Esta comparación demuestra que git rev-parse <tag-name> recupera con éxito el hash del commit al que apunta la etiqueta especificada. Este es un concepto fundamental en Git: las etiquetas son simplemente punteros a commits específicos. Comprender esta relación es clave para navegar eficazmente por el historial de tu proyecto.

Probar diferentes etiquetas (tags)

En este paso, crearemos otro commit y otra etiqueta (tag) para seguir practicando el uso de git rev-parse con diferentes etiquetas. Esto reforzará tu comprensión de cómo las etiquetas apuntan a commits específicos en el historial de tu proyecto.

Primero, asegúrate de estar en el directorio ~/project/my-time-machine.

cd ~/project/my-time-machine

Ahora, modifiquemos el archivo version.txt y creemos un nuevo commit.

echo "This is the second version." >> version.txt
git add version.txt
git commit -m "Update version file to v2"

Después del commit, deberías ver una salida similar a esta:

[master <new-commit-hash>] Update version file to v2
 1 file changed, 1 insertion(+)

Ahora hemos creado un nuevo commit. Añadamos otra etiqueta, v2.0, a este último commit.

git tag v2.0

Nuevamente, este comando no producirá salida, pero la etiqueta se crea.

Ahora, listemos todas las etiquetas en nuestro repositorio:

git tag

Deberías ver ambas etiquetas:

v1.0
v2.0

Finalmente, usemos git rev-parse para obtener el hash del commit de la nueva etiqueta, v2.0.

git rev-parse v2.0

Esto mostrará el hash completo del commit donde creaste la etiqueta v2.0:

<full-commit-hash-for-v2>

También puedes usar git rev-parse para obtener el hash de la etiqueta v1.0 de nuevo y ver que todavía apunta al commit original:

git rev-parse v1.0

Esto mostrará el hash completo del commit donde creaste la etiqueta v1.0 (el mismo hash que viste en el Paso 1):

<full-commit-hash-for-v1>

Al usar git rev-parse con diferentes nombres de etiquetas, puedes recuperar fácilmente el hash del commit específico asociado a cada versión etiquetada de tu proyecto. Esto es increíblemente útil para navegar por el historial de tu proyecto y hacer referencia a puntos de lanzamiento específicos.

Resumen

En este laboratorio (lab), aprendimos cómo comprobar si una etiqueta (tag) de Git apunta a un commit específico. Comenzamos utilizando el comando git rev-parse <tag> para recuperar el hash del commit asociado a una etiqueta dada. Este comando es una herramienta poderosa para convertir varias referencias de Git en su hash completo de commit.

Luego, comparamos el hash del commit obtenido con git rev-parse con el hash del commit real encontrado en el registro (log) de Git para verificar que la etiqueta realmente apunta al commit esperado. Este proceso nos permite confirmar el commit exacto que representa una etiqueta, lo cual es crucial para gestionar las versiones (releases) y rastrear puntos específicos en el historial del proyecto.