Ejecutar git tag --contains Commit
En este paso, aprenderemos cómo usar el comando git tag --contains
para encontrar qué etiquetas (tags) contienen un commit específico. Esto es útil cuando quieres saber qué versiones o lanzamientos de tu proyecto incluyen un cambio particular.
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 algunos commits y etiquetas para trabajar. Agregaremos un nuevo archivo y haremos un commit:
echo "Another message for the future" > message2.txt
git add message2.txt
git commit -m "Add a second message"
Deberías ver una salida similar a esta:
[master <commit-hash>] Add a second message
1 file changed, 1 insertion(+)
create mode 100644 message2.txt
Ahora, agreguemos una etiqueta a este commit. La llamaremos v1.0
:
git tag v1.0
Este comando no produce ninguna salida, pero ha creado una etiqueta que apunta al último commit.
Hagamos otro commit sin etiqueta:
echo "A third message" > message3.txt
git add message3.txt
git commit -m "Add a third message"
Deberías ver una salida similar a esta:
[master <commit-hash>] Add a third message
1 file changed, 1 insertion(+)
create mode 100644 message3.txt
Ahora tenemos dos commits y una etiqueta. Usemos git log --oneline
para ver el historial de commits:
git log --oneline
Deberías ver algo como esto (los hashes de los commits serán diferentes):
<commit-hash> (HEAD -> master) Add a third message
<commit-hash> (tag: v1.0) Add a second message
<commit-hash> Send a message to the future
Observa que la etiqueta v1.0
está asociada con el commit "Add a second message".
Ahora, encontremos qué etiquetas contienen el commit "Add a second message". Necesitamos el hash del commit para esto. Del resultado de git log --oneline
, copia el hash del commit junto a (tag: v1.0)
.
Reemplaza <commit-hash>
con el hash real que copiaste y ejecuta el siguiente comando:
git tag --contains <commit-hash>
Deberías ver v1.0
en la salida, porque esta etiqueta apunta directamente a ese commit.
Ahora, intentemos encontrar qué etiquetas contienen el primer commit ("Send a message to the future"). Copia el hash del commit de ese commit desde git log --oneline
.
Reemplaza <first-commit-hash>
con el hash real y ejecuta:
git tag --contains <first-commit-hash>
Todavía deberías ver v1.0
en la salida. Esto se debe a que v1.0
está en un commit que es un descendiente del primer commit. La opción --contains
verifica si el commit especificado es un ancestro del commit al que apunta la etiqueta.
Este comando es muy útil cuando necesitas determinar qué versiones de tu software incluyen una corrección de error o una característica específica.