Fusionar ramas en Git a veces puede ser una tarea desalentadora, pero el comando git merge
simplifica significativamente el proceso. En este tutorial, aprenderás los conceptos básicos de combinar ramas usando git merge
, junto con GitHub, una herramienta líder de gestión de proyectos.
Comencemos este viaje al mundo de Git y GitHub, centrándonos en el poderoso comando git merge
.
Prerrequisitos para Dominar Git Merge
Antes de adentrarte en las complejidades de git merge
, asegúrate de tener la siguiente configuración:
- Git (Versión 2.25.1 utilizada en este tutorial) – Descárgalo desde el sitio oficial de Git.
- A GitHub account – Sign up at GitHub.
- Una máquina Ubuntu (Se utiliza Ubuntu 20.04 aquí, pero cualquier sistema operativo con Git será suficiente).
Inicializando un Proyecto para Git Merge
Para usar efectivamente git merge
, primero necesitas un proyecto Git. Vamos a configurar un proyecto de demostración para practicar.
1. Comienza creando un nuevo directorio llamado ~/git-demo y navega hacia él:
2. Crea un archivo index.html en el directorio ~/git-demo con el siguiente contenido. Este archivo HTML básico muestra un mensaje sobre empezar con git merge
.
3. Inicializa un nuevo repositorio Git en tu directorio de proyecto:
El comando
git init
se utiliza para convertir un proyecto existente y no versionado en un repositorio Git o para iniciar un nuevo proyecto con Git.

4. Confirma la creación de la carpeta .git en el directorio de tu proyecto. Esta carpeta es donde Git realiza un seguimiento de los cambios:

5. Implementa el comando git add
para preparar tus cambios en el proyecto. Al preparar el archivo index.html para el próximo commit en el flujo de trabajo de Git.
6. Utiliza git status
para confirmar que tu archivo está correctamente preparado. Este comando proporciona una instantánea del estado actual de tu directorio de trabajo.

7. A continuación, realiza tu commit con git commit
. Este comando guarda tus cambios preparados en el repositorio local, marcando un paso significativo en tu historial de versiones.

Configura tu identidad en Git con:
git config --global user.email "[email protected]"
ygit config --global user.name "Tu Nombre"
si estás utilizando Git por primera vez.
8. Revisa tu historial de commits con git log
. Este comando te ayuda a realizar un seguimiento de los cambios y es vital al prepararte para un git merge
.

9. Confirma la existencia de ramas en tu repositorio con git branch
. Este paso es crucial antes de realizar un git merge
.
Nota: La rama predeterminada se llama ‘main’ en las versiones recientes de Git, reemplazando ‘master’.

Creando una Rama para Git Merge
Con la configuración inicial de Git completada y el primer commit realizado, es hora de crear una nueva rama. Esta rama se utilizará para demostrar el proceso de git merge
de manera efectiva.
1. Actualiza el archivo index.html con nuevo contenido para demostrar los cambios en tu rama. Esta versión incluye campos de entrada de usuario, preparándose para una demostración de git merge
.
2. Verifica el estado de tu repositorio con git status
para ver los cambios en index.html. Debería indicar que el archivo está modificado y sin confirmar, listo para los siguientes pasos en el proceso de git merge
.

3. Crea una nueva rama llamada “form” con git checkout -b form
. Este comando no solo crea la nueva rama, sino que también cambia tu rama de trabajo a “form”, esencial para implementar git merge
.

4. Confirma la creación de la nueva rama ejecutando git branch
. Ahora deberías ver tanto las ramas “form” como “master”, con “form” como la rama activa indicada por un asterisco (*).

5. Haz staging y commitea tus cambios a la rama form. Esta acción asegura que la rama form refleje las actualizaciones recientes hechas al archivo index.html, preparando el terreno para un git merge
efectivo.

Merge de Rama Local con Git Merge
Ahora que tienes ramas distintas en tu repositorio de GitHub, el siguiente paso es fusionarlas. Esta sección se centra en fusionar ramas localmente usando el comando git merge
, una operación fundamental de Git.
1. Para comenzar la fusión, cambia a la rama master
, que recibirá las actualizaciones de la rama form
:
2. Una vez en la rama master
, ejecuta git merge form
para combinar los cambios de la rama form
en master
. Este es un paso crucial en el proceso de git merge
.

git merge
.3. Confirma la fusión asegurándote de que estás en la rama master
y verificando que el contenido de index.html haya sido actualizado.

git merge
.Optimizando con Git Squash
Squash en Git es una técnica utilizada para limpiar el historial de confirmaciones. Cuando tienes múltiples mensajes de confirmación que no son necesarios individualmente, squash te permite combinarlos en una única confirmación completa. Esta práctica es especialmente útil cuando te estás preparando para un git merge
.
Exploremos el proceso de squash haciendo cambios adicionales en el archivo index.html en la rama form
, y luego aplastando estos cambios.
1. Cambia de nuevo a la rama form
para hacer cambios adicionales:
2. Modifica el archivo index.html agregando un encabezado de formulario. Este paso creará un cambio que luego fusionaremos durante el merge:
3. Etapa y realiza un commit de los cambios con un mensaje claro que describa la actualización:

git merge
.4. Mejora el archivo index.html en la rama form
agregando un nuevo campo de entrada. Esta modificación es parte de la preparación para una fusión efectiva de git merge
.
5. Etapa y realiza un commit de estos cambios con un mensaje distintivo, asegurando que cada paso en tu trabajo esté claramente documentado para el próximo git merge
.

git merge
.6. A continuación, inserta un elemento de párrafo debajo del formulario en index.html, modificando aún más el archivo en preparación para un git merge
.
7. Nuevamente, etapa y realiza un commit de los cambios, utilizando un mensaje que capture la esencia de esta actualización, crucial para el proceso de git merge
.

git merge
.8. Utiliza git rebase
en modo interactivo para ver y editar tus commits recientes. Este paso es esencial en el proceso de fusionar commits para un git merge
limpio.
9. En el modo interactivo, elige reword
para el primer commit y squash
para los siguientes. Esta acción consolida tu historial de commits, haciendo que tu git merge
sea más limpio y organizado.

git merge
.10. Después de reescribir y guardar, actualiza el mensaje del commit consolidado para reflejar los cambios acumulativos. Este paso finaliza el proceso de fusión, preparándote para un git merge
simplificado.

git merge
.Confirmar el éxito de su operación de aplastamiento, que es una parte integral del proceso de git merge
al manejar múltiples mensajes de confirmación.

git squash
operation.Para el aplastamiento y fusión simultáneos, utilice git merge --squash
. Esta técnica fusiona y aplasta la rama form en la rama master, combinando eficientemente las confirmaciones.
Al ejecutar el comando git merge --squash
, se combinan los cambios de la rama form
en master
, al mismo tiempo que se condensan todas las confirmaciones en una sola. Este enfoque es parte de las estrategias efectivas de git merge
.

git merge
with squash option.Implementación del avance rápido en Git Merge
Para un historial de confirmaciones simplificado, el avance rápido es un método ideal, especialmente para actualizaciones menores o correcciones de errores. Permite fusionar ramas sin confirmaciones de fusión adicionales, manteniendo un historial limpio y lineal, crucial para procesos eficientes de git merge
.
El avance rápido ocurre cuando no hay divergencia en la rama base, típicamente la master
, lo que permite una integración sin problemas de historiales y actualizaciones de punteros.
1. Cambie a la rama form
para comenzar el proceso de avance rápido:
2. Cree y actualice un archivo JavaScript, como index.js, en la rama form
, preparando y confirmando los cambios:
3. Finalmente, fusione la rama form
en master
utilizando un enfoque de avance rápido. Este paso alinea la rama master con los últimos cambios de la rama form, creando un camino de git merge
suave y lineal.

Conclusión
Este tutorial te ha guiado a través de varias técnicas para combinar ramas utilizando git merge
. Desde aplastar commits hasta avanzar rápidamente, estos métodos mejoran tu capacidad para gestionar proyectos colaborativamente en Git.
Ahora, equipado con estas habilidades, considera contribuir a proyectos colaborativos en GitHub, aplicando tu conocimiento de git merge
en escenarios del mundo real.