Git merge – Qué es, para qué sirve y cómo unir ramas

Después de aprender a crear y cambiar entre ramas, el siguiente paso es saber cómo unirlas correctamente. Con Git merge podrás combinar los cambios realizados en diferentes ramas sin perder el historial del proyecto. En esta guía aprenderás qué es, para qué sirve y cómo utilizar este comando paso a paso.

git merge que es par que sirve como hacer

1. Introducción

Una vez que ya sabes cómo crear ramas con git branch y cómo cambiar entre ellas con git switch, llega el momento de aprender uno de los comandos más importantes de Git.

En un proyecto real es muy común que cada desarrollador trabaje en una rama diferente. Por ejemplo, una persona puede estar agregando una nueva funcionalidad mientras otra corrige errores sin modificar el trabajo de su compañero.

Pero tarde o temprano llega el momento de unir todos esos cambios en una sola rama. Para realizar esta tarea Git incorpora el comando git merge, que permite combinar el contenido de dos ramas conservando el historial de cambios.

En esta guía aprenderás qué es git merge, para qué sirve, cuándo conviene utilizarlo, cómo hacerlo desde Visual Studio Code y qué sucede cuando aparecen conflictos durante la unión de ramas.

2. ¿Qué es Git merge?

git merge es un comando de Git que permite fusionar los cambios de una rama dentro de otra.

En otras palabras, toma todas las modificaciones realizadas en una rama y las incorpora a la rama en la que te encuentras actualmente.

Por ejemplo:

  • tienes una rama llamada main
  • creas una nueva rama llamada desarrollo
  • realizas varios cambios en desarrollo
  • cuando todo funciona correctamente deseas llevar esos cambios a main

En ese momento utilizas git merge.

No copia archivos manualmente ni reemplaza todo el proyecto, sino que Git analiza el historial de ambas ramas y combina automáticamente los cambios cuando es posible.

3. ¿Para qué sirve?

Este comando se utiliza para mantener el desarrollo organizado.

Entre sus principales usos se encuentran:

  • incorporar nuevas funcionalidades a la rama principal
  • unir el trabajo de varios desarrolladores
  • integrar correcciones de errores
  • finalizar una rama de desarrollo
  • mantener un historial completo del proyecto

Gracias a git merge, cada persona puede trabajar de manera independiente sin afectar el trabajo de los demás hasta que llegue el momento de integrar todo.

4. ¿Cómo funciona?

Git siempre fusiona otra rama hacia la rama actual.

Es decir:

Si estás ubicado en:

main

y ejecutas:

git merge desarrollo

Git hace lo siguiente:

  1. permanece en main
  2. busca todos los cambios realizados en desarrollo
  3. los incorpora dentro de main
  4. actualiza el historial del repositorio

Una forma sencilla de imaginarlo es pensar que Git «trae» el contenido de otra rama hacia la rama donde te encuentras trabajando.

5. Cómo hacer un Git merge desde la terminal

Veamos el procedimiento completo de como usar git merge desde la terminal de VS Code.

Paso 1. Verificar en qué rama estás

Primero ejecuta:

git branch

Obtendrás algo parecido a esto:

* main
  desarrollo

El asterisco indica la rama actual.

Paso 2. Cambiar a la rama que recibirá los cambios

Si deseas unir todo dentro de main:

git switch mainLenguaje del código: JavaScript (javascript)

Ahora estás ubicado en la rama principal.

Paso 3. Ejecutar Git merge

Escribe:

git merge desarrollo

Git comenzará a combinar ambas ramas.

Si no existe ningún conflicto aparecerá un mensaje similar a:

Updating 2d3f451..4d2a6d8

Fast-forwardLenguaje del código: CSS (css)

o bien:

Merge made by the 'ort' strategy.Lenguaje del código: JavaScript (javascript)

Esto significa que la unión fue exitosa.

Paso 4. Verificar el resultado

Puedes comprobar el historial mediante:

git log --oneline --graph

Verás cómo ambas ramas ahora forman parte del mismo historial.

6. ¿Cómo hacer Git merge sin usar la terminal?

Visual Studio Code también permite realizar un merge utilizando su interfaz gráfica.

Los pasos generales son:

  1. Abrir el panel Control de código fuente.
  2. Cambiar a la rama principal desde el selector de ramas ubicado en la parte inferior izquierda.
  3. Abrir la paleta de comandos (Ctrl + Shift + P).
  4. Escribir:
Git: Merge Branch...Lenguaje del código: HTTP (http)
  1. Seleccionar la rama que deseas fusionar.
  2. Esperar a que Visual Studio Code complete el proceso.

Si existen conflictos, VS Code mostrará herramientas visuales para resolverlos fácilmente.

Esta opción es ideal para quienes todavía no se sienten cómodos utilizando la terminal.

7. ¿Qué sucede cuando merge hace la unión sin conflictos?

La mayoría de las veces Git puede combinar los cambios sin problemas.

Por ejemplo:

Rama main

<h1>Mi sitio web</h1>Lenguaje del código: HTML, XML (xml)

Rama desarrollo

<h1>Mi sitio web</h1>

<p>Bienvenido.</p>Lenguaje del código: HTML, XML (xml)

Como ambas modificaciones no afectan la misma línea, Git puede unirlas automáticamente.

En estos casos no necesitas hacer nada más.

8. ¿Qué ocurre cuando aparece un conflicto de Merge?

No siempre Git puede decidir qué versión conservar.

Imagina este caso.

En main cambiaste:

<h1>Curso de Git</h1>Lenguaje del código: HTML, XML (xml)

Mientras que en desarrollo modificaste exactamente esa misma línea:

<h1>Curso completo de Git</h1>Lenguaje del código: HTML, XML (xml)

Ahora Git encuentra dos versiones distintas de la misma línea y no sabe cuál debe conservar.

A esto se lo conoce como Merge Conflict.

En ese momento Git solicitará que el desarrollador elija cuál versión conservar o si desea combinar ambas.

En un próximo artículo aprenderás cómo resolver estos conflictos paso a paso.

9. Eliminar una rama en Git

Una vez que una rama ya cumplió su propósito y sus cambios fueron integrados mediante git merge, lo más recomendable es eliminarla para mantener el repositorio limpio y organizado. Eliminar una rama no afecta el contenido del proyecto si previamente fue fusionada, simplemente elimina esa referencia del repositorio.

Por ejemplo, si la rama desarrollo ya fue unida a main, puedes eliminarla ejecutando:

git branch -d desarrollo

La opción -d (delete) elimina la rama únicamente si Git detecta que sus cambios ya fueron fusionados, evitando así la pérdida accidental de trabajo.

Si por algún motivo deseas eliminar una rama que todavía no fue fusionada, puedes forzar su eliminación con:

git branch -D desarrollo

Sin embargo, este comando debe utilizarse con precaución, ya que eliminará la rama aunque contenga cambios que aún no se hayan incorporado a otra rama.

Importante: No es posible eliminar la rama en la que te encuentras actualmente. Antes de hacerlo, cambia a otra rama, por ejemplo:

git switch mainLenguaje del código: JavaScript (javascript)

Y luego elimina la rama:

git branch -d desarrollo

En proyectos reales es una buena práctica eliminar las ramas que ya no se utilizan, ya que facilita la organización del repositorio y evita que se acumulen ramas antiguas o innecesarias.

10. Casos reales donde se utilizalo

En proyectos reales este comando se utiliza constantemente.

Algunos ejemplos son:

10.1. Agregar una nueva funcionalidad

Un desarrollador crea una rama para implementar un sistema de búsqueda.

Cuando termina las pruebas, une esa rama con main.

10.2. Corregir un error urgente

Mientras el equipo desarrolla nuevas funciones, aparece un error crítico.

Se crea una rama para corregirlo.

Una vez solucionado, se hace un git merge hacia la rama principal.

10.3. Actualizar una versión del proyecto

Antes de publicar una nueva versión se fusionan todas las ramas que contienen mejoras aprobadas.

De esta manera el proyecto queda listo para ser distribuido.

10.4. Trabajo colaborativo

Cinco desarrolladores trabajan simultáneamente.

Cada uno utiliza una rama distinta.

Cuando terminan sus tareas, todas esas ramas se integran mediante git merge.

Así se evita que los cambios se mezclen mientras cada integrante está desarrollando su parte.

11. Ejemplo práctico

Supongamos que una empresa está desarrollando una tienda online.

El proyecto tiene la siguiente organización:

main

Juan crea una rama llamada:

carrito-compras

Allí desarrolla todo el carrito de compras.

Mientras tanto, María crea otra rama llamada:

login-usuarios

En esa rama desarrolla el sistema de inicio de sesión.

Durante varios días ambos trabajan sin modificar la rama principal.

Cuando las dos funcionalidades están terminadas y fueron probadas, el responsable del proyecto cambia a la rama main y comienza a integrarlas.

Primero ejecuta:

git switch mainLenguaje del código: JavaScript (javascript)

Luego incorpora el trabajo de Juan:

git merge carrito-compras

Después incorpora el trabajo de María:

git merge login-usuarios

Al finalizar, la rama main contiene tanto el carrito de compras como el sistema de inicio de sesión, conservando además el historial de cada cambio realizado durante el desarrollo.

Este es uno de los escenarios más comunes en equipos de trabajo profesionales.

12. Buenas prácticas

Para evitar problemas durante la fusión de ramas, es recomendable seguir estas prácticas:

  • realiza commits antes de ejecutar un merge
  • verifica que estés ubicado en la rama correcta
  • prueba el proyecto antes y después de la unión
  • utiliza nombres descriptivos para las ramas
  • elimina las ramas que ya no se utilizarán una vez finalizado el merge (si el flujo de trabajo lo permite)
  • revisa el historial con git log --graph para confirmar que la integración fue correcta

13. Resumen

git merge es el comando que permite unir los cambios de una rama dentro de otra, siendo una herramienta fundamental para el trabajo colaborativo y el desarrollo organizado de proyectos.

Una vez que dominas la creación de ramas con git branch, el cambio entre ellas mediante git switch y la integración de cambios con git merge, ya cuentas con una base sólida para trabajar con Git en proyectos reales, tanto de forma individual como en equipos de desarrollo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *