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.

Índice
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:
- permanece en
main - busca todos los cambios realizados en
desarrollo - los incorpora dentro de
main - 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:
- Abrir el panel Control de código fuente.
- Cambiar a la rama principal desde el selector de ramas ubicado en la parte inferior izquierda.
- Abrir la paleta de comandos (
Ctrl + Shift + P). - Escribir:
Git: Merge Branch...Lenguaje del código: HTTP (http)
- Seleccionar la rama que deseas fusionar.
- 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 --graphpara 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.
