Usar git branch --contains para verificar confirmaciones (commits)
En este paso, aprenderemos cómo usar el comando git branch --contains
para descubrir qué ramas (branches) contienen una confirmación específica. Esto es útil cuando tienes múltiples ramas y quieres saber dónde existe un cambio en particular.
Primero, asegúrate de estar en el directorio de tu proyecto:
cd ~/project/my-time-machine
Creemos una nueva rama para demostrar este comando. La llamaremos feature-branch
:
git branch feature-branch
Este comando crea una nueva rama, pero no cambia a ella. Puedes ver tus ramas usando git branch
:
git branch
Deberías ver algo como esto, con master
resaltado (lo que indica que es la rama actual):
* master
feature-branch
Ahora, obtengamos el hash de nuestra primera confirmación. Podemos usar git log --oneline
para ver un historial condensado con los hashes de las confirmaciones:
git log --oneline
Verás una salida similar a esta (tus hashes serán diferentes):
e4f5g6h (HEAD -> master) Update message.txt
a1b2c3d Add a second file
abcdef0 Send a message to the future
Copia el hash de la primera confirmación ("Send a message to the future"). En el ejemplo anterior, es abcdef0
.
Ahora, usemos git branch --contains
con el hash de la primera confirmación:
git branch --contains abcdef0
Reemplaza abcdef0
con el hash real de tu primera confirmación.
La salida debería mostrar tanto master
como feature-branch
:
* master
feature-branch
Esto nos dice que la confirmación "Send a message to the future" existe tanto en la rama master
como en la rama feature-branch
. Esto tiene sentido porque creamos feature-branch
mientras estábamos en la rama master
, y la primera confirmación ya era parte de master
.
Ahora, obtengamos el hash de la última confirmación ("Update message.txt"). En el ejemplo anterior, es e4f5g6h
.
Usa git branch --contains
con el hash de la última confirmación:
git branch --contains e4f5g6h
Reemplaza e4f5g6h
con el hash real de tu última confirmación.
La salida debería mostrar solo master
:
* master
Esto se debe a que la última confirmación se hizo en la rama master
después de crear feature-branch
. Por lo tanto, feature-branch
no contiene esta confirmación.
El comando git branch --contains
es una herramienta poderosa para entender la relación entre confirmaciones y ramas, lo que te ayuda a rastrear dónde se han integrado cambios específicos.