Menu
Coddy logo textTech

Git Merge

Última actualización

git merge incorpora los commits de otra rama a la actual. Cuando la rama actual no ha divergido, Git hace un fast-forward: solo mueve el puntero hacia adelante. Cuando ambas ramas tienen commits nuevos, Git crea un merge commit que une las dos historias. A diferencia de rebase, merge conserva la historia exacta de ambas ramas.

Prueba esto en el terminal playground: una shell real en tu navegador, sin nada que instalar.

Sintaxis

CommandWhat it does
git merge featureFusiona feature en la rama actual
git merge --no-ff featureCrea siempre un merge commit
git merge --ff-only featureFusiona solo si puede hacer fast-forward
git merge --squash featureCombina los commits de la rama en uno solo
git merge --abortCancela una fusión con conflictos

Fast-forward frente a merge commit

ScenarioFast-forwardMerge commit (--no-ff)
Crea un commit nuevoNo
Conserva un registro de la ramaNo
Ocurre cuandoLa rama actual no ha divergidoAmbas ramas tienen commits nuevos

Resolver un conflicto de fusión

Cuando ambas ramas cambiaron las mismas líneas, Git se detiene.

StepCommandResult
1Edita los archivos en conflictoElige las líneas correctas, elimina los marcadores
2git add <file>Marca el conflicto como resuelto
3git commitCompleta la fusión

Preguntas frecuentes sobre git merge

¿Cómo fusiono una rama en otra en Git?
Cambia a la rama en la que quieres fusionar (por ejemplo, git switch main) y luego ejecuta git merge feature. Git combina los commits de feature en main, ya sea mediante un fast-forward o creando un merge commit si ambas ramas han divergido.
¿Cuál es la diferencia entre un fast-forward y un merge commit?
Un fast-forward ocurre cuando tu rama actual no se ha movido desde que la otra rama se separó: Git simplemente desliza el puntero hacia adelante, sin un commit nuevo. Un merge commit se crea cuando ambas ramas tienen commits nuevos, uniendo sus historias. Usa --no-ff para crear siempre un merge commit, o --ff-only para exigir un fast-forward.
¿Cómo resuelvo un conflicto de fusión?
Cuando una fusión entra en conflicto, Git marca las secciones enfrentadas en los archivos afectados con los marcadores <<<<<<<, ======= y >>>>>>>. Edita cada archivo para conservar el contenido correcto y eliminar los marcadores, luego haz git add de los archivos resueltos y git commit para finalizar la fusión.
¿Cómo deshago o aborto una fusión?
Si la fusión aún está en curso (con conflictos sin resolver), ejecuta git merge --abort para cancelarla y restaurar el estado previo a la fusión. Si la fusión ya se completó localmente, git reset --hard ORIG_HEAD devuelve la rama a su posición previa a la fusión (a diferencia de HEAD~1, también es correcto tras un fast-forward, pero descarta el trabajo sin confirmar). Si la fusión ya está subida, usa git revert -m 1 <merge-hash>.
¿Puedo practicar esto en línea?
Sí. Abre el terminal playground para ejecutar git merge en una shell real en tu navegador, sin nada que instalar. El curso interactivo y gratuito de Git de Coddy también cubre la fusión y la resolución de conflictos paso a paso.
Coddy programming languages illustration

Aprende Git con Coddy

COMENZAR