Cómo revertir una confirmación de fusión en Git sin reescribir el historial
Una confirmación de fusión tiene dos padres, por lo que Git necesita saber qué lado conservar. Aquí se explica cómo elegir el padre, deshacer la fusión de forma segura en una rama compartida y recuperar el trabajo más tarde.
Escrito por Kodmora
La casa de software detrás de GitTree
- fusionar
- Deshacer y recuperar
- Historial de commits
En esta página
Para revertir una confirmación de fusión, ejecute `git revert -m 1 <merge-commit>`. -m 1 le dice a Git que mantenga el primer padre, que es la rama en la que se fusionó, y que deshaga todo lo que trajo la fusión. Git agrega una nueva confirmación, por lo que el historial permanece intacto y es seguro enviar la solución a una rama compartida.
¿Cómo revertir una confirmación de fusión?
Busque primero la confirmación de fusión. El gráfico lo muestra como un commit con dos padres:
git log --oneline --graph -10Luego confirma a sus padres. El primer hash impreso después de la confirmación es el padre 1, el segundo es el padre 2:
git log -1 --format="%h parents: %p" <merge-commit>Revertirlo, manteniendo el padre 1, y enviar el nuevo commit como cualquier otro:
git revert -m 1 <merge-commit>
git pushNo se reescribe nada, por lo que nadie necesita restablecerlo ni forzarlo. Si la reversión entra en conflicto, corrija los archivos, prepárelos y ejecute git revert --continue. Para retroceder, ejecute git revert --abort.
¿Por qué Git dice "la confirmación es una fusión pero no se proporcionó la opción -m"?
Una confirmación normal tiene un padre, por lo que su diferencia es obvia. Una confirmación de fusión tiene dos, por lo que git revert <merge-commit> no puede saber a qué lado desea regresar. Git se detiene con este error y no cambia nada:
error: commit 4f2a9c1 is a merge but no -m option was given.
fatal: revert failedAgregue -m con un número principal y ejecútelo nuevamente.
¿Debo usar -m 1 o -m 2?
| Opción | mantiene | Úselo cuando |
|---|---|---|
-m 1 | La rama en la que se fusionó, como main | Se fusionó una característica y se debe eliminar. Éste es el caso habitual. |
-m 2 | La rama que se fusionó en | Ingresaste main a tu rama de funciones y deseas eliminar lo que vino de main. |
¿Cómo vuelvo a fusionar la misma rama después de una reversión?
Ésta es la trampa. Como dice la documentación de Git, revertir una fusión "declara que nunca querrás los cambios en el árbol generados por la fusión". Las confirmaciones de la rama siguen siendo antecesoras de main, por lo que una segunda git merge solo trae las confirmaciones realizadas después de la reversión.
Para recuperar el trabajo original, primero revierta la reversión y luego combine la rama fija:
git revert <revert-commit>
git merge feature/search¿Qué pasa si la fusión aún no se ha impulsado?
Puede eliminar la combinación en lugar de agregar una reversión. Git registra la confirmación antes de la fusión en ORIG_HEAD y --merge se niega a tocar ediciones locales no relacionadas que el reinicio sobrescribiría:
git reset --merge ORIG_HEADSi la fusión aún está en progreso y tiene conflictos, aún no hay confirmación de fusión, así que use git merge --abort. Lea cómo deshacer un reinicio, rebase o confirmación si va demasiado lejos, y la lección sobre revertir versus restablecer en el historial compartido para conocer la regla detrás de esta elección.
Cómo revertir una confirmación de fusión en GitTree
Abra el menú de confirmación
Busque la combinación en el gráfico de confirmación y haga clic derecho en ella.
Elija Revertir confirmación
Una combinación tiene dos padres, por lo que GitTree pregunta con cuál comparar: El primer padre (la rama en la que se fusionó) es la opción habitual, y El segundo padre (la rama en la que se fusionó) es el otro.
Comprueba el resultado
GitTree dice Revertido. y la nueva confirmación es la fila superior de tu rama. Si hay conflicto, resuelva los archivos y presione Continuar o Abortar... para regresar.
Consulte seleccione y revierta en GitTree para obtener la guía completa, incluidas varias confirmaciones a la vez.

Preguntas frecuentes
¿Git revert elimina la confirmación de fusión?
No. La fusión queda en la historia. Git agrega una nueva confirmación que deshace sus cambios, por lo que es seguro en una rama compartida.
¿Qué significa -m 1 en git revert?
Nombra el padre principal que se debe conservar. El padre 1 es la rama en la que estaba cuando ejecutó la combinación, por lo que -m 1 elimina lo que trajo la otra rama.
¿Puedo revertir una fusión que ya está activada?
Sí, y es la herramienta adecuada para eso. Revertir agrega una confirmación, por lo que presiona normalmente y nadie tiene que reescribir nada.
¿Por qué mi segunda fusión no devolvió nada?
Las confirmaciones de la rama revertida ya están en el historial, por lo que Git las trata como fusionadas. Revierta la confirmación de reversión y luego fusione nuevamente.
¿Cómo deshago una fusión que aún está en progreso?
Ejecute git merge --abort. Detiene la fusión y devuelve los archivos a cómo estaban antes de iniciarla.
Fuentes
Las afirmaciones sobre otros productos se compararon con sus páginas oficiales el 7 de noviembre de 2026. Los precios y las características cambian; Las páginas de los proveedores son la fuente de la verdad.