Cómo verificar si una etiqueta (tag) de Git está asociada a una rama (branch)

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 verificar si una etiqueta (tag) de Git está asociada a una rama (branch) específica. Exploraremos el comando git branch --contains para identificar qué ramas incluyen el commit al que apunta una etiqueta.

También utilizarás git log para verificar visualmente la presencia del commit etiquetado en el historial de una rama y probar el comportamiento de git branch --contains con ramas que no contienen el commit etiquetado.


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/branch("Handle Branches") git/BranchManagementGroup -.-> git/checkout("Switch Branches") git/BranchManagementGroup -.-> git/log("Show Commits") git/BranchManagementGroup -.-> git/tag("Git Tags") subgraph Lab Skills git/add -.-> lab-560110{{"Cómo verificar si una etiqueta (tag) de Git está asociada a una rama (branch)"}} git/commit -.-> lab-560110{{"Cómo verificar si una etiqueta (tag) de Git está asociada a una rama (branch)"}} git/branch -.-> lab-560110{{"Cómo verificar si una etiqueta (tag) de Git está asociada a una rama (branch)"}} git/checkout -.-> lab-560110{{"Cómo verificar si una etiqueta (tag) de Git está asociada a una rama (branch)"}} git/log -.-> lab-560110{{"Cómo verificar si una etiqueta (tag) de Git está asociada a una rama (branch)"}} git/tag -.-> lab-560110{{"Cómo verificar si una etiqueta (tag) de Git está asociada a una rama (branch)"}} end

Ejecutar git branch --contains Tag

En este paso, exploraremos cómo utilizar el comando git branch --contains con una etiqueta (tag). Este comando es útil para descubrir qué ramas (branches) contienen un commit específico, y dado que las etiquetas apuntan a commits específicos, podemos usarlo para ver qué ramas incluyen el commit al que apunta una etiqueta.

Primero, asegúrate de estar en el directorio de tu proyecto. Abre tu terminal y navega al directorio my-time-machine si aún no estás allí:

cd ~/project/my-time-machine

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

echo "Another message for the future" > message2.txt
git add message2.txt
git commit -m "Add another message"

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

[master a1b2c3d] Add another message
 1 file changed, 1 insertion(+)
 create mode 100644 message2.txt

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

git tag v1.0

Este comando crea una etiqueta ligera llamada v1.0 que apunta al commit actual.

Para ver qué ramas contienen el commit al que apunta la etiqueta v1.0, usamos git branch --contains:

git branch --contains v1.0

Dado que solo tenemos la rama master y creamos la etiqueta en el último commit de master, la salida debería mostrar master:

* master

El asterisco (*) indica la rama actualmente seleccionada (checked out).

Este comando es poderoso porque te permite identificar rápidamente qué ramas han incorporado un hito o lanzamiento específico, representado por una etiqueta.

Utilizar git log para Verificar la Rama

En este paso, utilizaremos el comando git log para verificar visualmente que el commit al que apunta nuestra etiqueta (tag) v1.0 está realmente presente en el historial de la rama (branch) master. Mientras que git branch --contains nos dice qué ramas contienen un commit, git log nos permite ver el historial de commits en detalle.

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

Ahora, veamos el historial de commits de la rama master utilizando git log. Podemos usar la opción --decorate para mostrar las etiquetas y los punteros de las ramas.

git log --decorate --oneline

La opción --oneline proporciona una vista concisa, mostrando cada commit en una sola línea. La opción --decorate muestra las referencias (como nombres de ramas y etiquetas) que apuntan a cada commit.

Deberías ver una salida similar a esta:

a1b2c3d (HEAD -> master, tag: v1.0) Add another message
e4f5g6h Send a message to the future

En esta salida, puedes ver el hash del commit (a1b2c3d en este ejemplo), seguido del mensaje del commit. Lo más importante, junto al último commit, deberías ver (HEAD -> master, tag: v1.0). Esto confirma que el último commit de la rama master es el mismo commit al que apunta la etiqueta v1.0.

Esta confirmación visual utilizando git log complementa la información proporcionada por git branch --contains. Te ayuda a entender la relación entre ramas, etiquetas y commits en el historial de tu proyecto.

Recuerda, git log es una herramienta poderosa para explorar la línea de tiempo de tu proyecto. Puedes usar varias opciones para personalizar la salida y encontrar la información que necesitas. Presiona q para salir de la vista del log si está en un paginador.

Probar Ramas No Relacionadas

En este paso, crearemos una nueva rama (branch) y realizaremos un commit en ella que no se base en el commit al que apunta nuestra etiqueta (tag) v1.0. Esto nos ayudará a entender cómo se comporta git branch --contains con ramas que no contienen el commit especificado.

Primero, creemos una nueva rama llamada feature-branch.

git branch feature-branch

Ahora, cambiemos a esta nueva rama.

git checkout feature-branch

Deberías ver una salida que indique que has cambiado de rama:

Switched to branch 'feature-branch'

A continuación, hagamos un nuevo commit en esta rama feature-branch. Crearemos un nuevo archivo.

echo "This is a new feature" > feature.txt
git add feature.txt
git commit -m "Add new feature file"

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

[feature-branch a1b2c3d] Add new feature file
 1 file changed, 1 insertion(+)
 create mode 100644 feature.txt

Ahora, usemos git branch --contains v1.0 de nuevo. Recuerda, v1.0 apunta a un commit en la rama master, y nuestro nuevo commit en feature-branch es diferente.

git branch --contains v1.0

Esta vez, la salida solo debería mostrar la rama master:

master

La rama feature-branch no se lista porque no contiene el commit específico al que apunta la etiqueta v1.0. Esto demuestra cómo git branch --contains identifica con precisión qué ramas tienen un commit particular en su historial.

Esto es útil cuando quieres saber si una corrección de error (etiquetada con una versión) se ha incluido en una rama de lanzamiento, o si una característica específica (también potencialmente etiquetada) se ha fusionado en diferentes líneas de desarrollo.

Resumen

En este laboratorio (lab), aprendimos cómo verificar si una etiqueta (tag) de Git está asociada a una rama (branch). Comenzamos utilizando el comando git branch --contains <tag>, que identifica de manera efectiva las ramas que incluyen el commit al que apunta la etiqueta especificada. Demostramos esto creando un nuevo commit, etiquetándolo y luego verificando que la rama master, donde se creó la etiqueta, se listara con el comando.

Luego, utilizamos el comando git log para confirmar visualmente que el commit asociado a la etiqueta estaba presente en el historial de la rama, lo que nos proporcionó una vista detallada de la línea de commits. Finalmente, exploramos cómo se comporta el comando git branch --contains con ramas que no contienen el commit etiquetado, lo que refuerza su utilidad para determinar rápidamente si una rama incluye hitos específicos etiquetados.