Cómo comprobar si una rama de Git tiene confirmaciones específicas

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, aprenderemos cómo verificar si una rama (branch) de Git contiene confirmaciones (commits) específicas. Comenzaremos explorando el comando git log y sus opciones de filtrado para buscar confirmaciones basadas en el contenido del mensaje o el autor. A continuación, utilizaremos el comando git branch --contains para determinar de manera eficiente qué ramas incluyen una confirmación en particular. Finalmente, verificaremos nuestros hallazgos comprobando directamente la presencia de una confirmación utilizando su hash.


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/log("Show Commits") subgraph Lab Skills git/add -.-> lab-560039{{"Cómo comprobar si una rama de Git tiene confirmaciones específicas"}} git/commit -.-> lab-560039{{"Cómo comprobar si una rama de Git tiene confirmaciones específicas"}} git/branch -.-> lab-560039{{"Cómo comprobar si una rama de Git tiene confirmaciones específicas"}} git/log -.-> lab-560039{{"Cómo comprobar si una rama de Git tiene confirmaciones específicas"}} end

Ejecutar git log para buscar confirmaciones (commits)

En este paso, exploraremos cómo usar el comando git log para buscar confirmaciones específicas en el historial de tu proyecto. A medida que tu proyecto crece y realizas más confirmaciones, la salida del comando git log puede volverse muy larga. Git proporciona opciones poderosas para filtrar y buscar en este historial.

Primero, asegúrate de estar en el directorio de tu proyecto:

cd ~/project/my-time-machine

Ahora, agreguemos algunas confirmaciones más para tener un historial en el que buscar. Agregaremos un nuevo archivo y realizaremos un cambio en uno existente.

Crea un nuevo archivo:

echo "This is my second file." > second_file.txt

Agrega y confirma el nuevo archivo:

git add second_file.txt
git commit -m "Add a second file"

Deberías ver una salida similar a esta:

[master a1b2c3d] Add a second file
 1 file changed, 1 insertion(+)
 create mode 100644 second_file.txt

Ahora, modifiquemos el archivo message.txt:

echo "Adding another line." >> message.txt

Agrega y confirma el cambio:

git add message.txt
git commit -m "Update message.txt"

Deberías ver una salida similar a esta:

[master e4f5g6h] Update message.txt
 1 file changed, 1 insertion(+)

Ahora que tenemos múltiples confirmaciones, usemos git log para ver el historial:

git log

Verás las tres confirmaciones listadas. Presiona q para salir de la vista del historial.

Para buscar confirmaciones que contengan una palabra específica en el mensaje de confirmación, podemos usar la opción --grep. Busquemos confirmaciones con la palabra "message":

git log --grep "message"

Este comando solo mostrará las confirmaciones cuyos mensajes contengan la palabra "message". Deberías ver la primera y la tercera confirmación.

También puedes buscar confirmaciones por autor usando la opción --author. Busquemos confirmaciones realizadas por "Jane Doe" (el nombre que configuramos en la configuración inicial):

git log --author "Jane Doe"

Esto mostrará todas las confirmaciones realizadas por el autor "Jane Doe". En este caso, debería mostrar las tres confirmaciones.

Usar git log con opciones como --grep y --author es esencial para navegar por proyectos más grandes y encontrar cambios o contribuciones específicas. ¡Es como tener un potente motor de búsqueda para el historial de tu proyecto!

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.

Verificar con el hash de confirmación (commit)

En este paso, practicaremos el uso de los hashes de confirmación para hacer referencia a puntos específicos en el historial de nuestro proyecto. Cada confirmación en Git tiene un hash único, que actúa como su huella digital. Puedes usar este hash para ver los detalles de una confirmación específica o incluso volver a ese punto en el tiempo.

Primero, asegúrate de estar en el directorio de tu proyecto:

cd ~/project/my-time-machine

Veamos el registro de confirmaciones nuevamente para obtener los hashes:

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

Ahora, veamos los detalles de la primera confirmación usando su hash. Copia el hash de la primera confirmación ("Send a message to the future"). En el ejemplo anterior, es abcdef0.

Usa el comando git show seguido del hash de la confirmación:

git show abcdef0

Reemplaza abcdef0 con el hash real de tu primera confirmación.

Este comando mostrará información detallada sobre esa confirmación específica, incluyendo el autor, la fecha, el mensaje de confirmación y los cambios introducidos en esa confirmación. Verás que el archivo message.txt se creó en esta confirmación.

Presiona q para salir de la vista de git show.

Ahora, veamos los detalles de la segunda confirmación ("Add a second file"). Copia su hash de la salida de git log --oneline. En el ejemplo anterior, es a1b2c3d.

Usa git show con el hash de la segunda confirmación:

git show a1b2c3d

Reemplaza a1b2c3d con el hash real de tu segunda confirmación.

Esto mostrará los detalles de la segunda confirmación, donde se creó el archivo second_file.txt.

Finalmente, veamos los detalles de la última confirmación ("Update message.txt"). Copia su hash. En el ejemplo anterior, es e4f5g6h.

Usa git show con el hash de la última confirmación:

git show e4f5g6h

Reemplaza e4f5g6h con el hash real de tu última confirmación.

Esto mostrará los detalles de la última confirmación, donde se agregó una línea al archivo message.txt.

Usar git show con hashes de confirmación te permite inspeccionar el contenido y los cambios de cualquier confirmación específica en el historial de tu proyecto. Esto es increíblemente útil para depurar, entender cómo se implementó una función o simplemente revisar trabajos anteriores.

Resumen

En este laboratorio (lab), aprendimos cómo verificar si una rama (branch) de Git contiene confirmaciones (commits) específicas. Comenzamos explorando el comando git log y sus opciones de filtrado, como --grep para buscar en los mensajes de confirmación y --author para buscar por autor, para localizar confirmaciones dentro del historial del proyecto.

A continuación, aprenderemos cómo usar el comando git branch --contains para comprobar directamente si una rama incluye una confirmación en particular, y finalmente, verificaremos esto utilizando el hash de la confirmación.