Git: Abortar una fusión
Última actualización
Si un git merge provoca conflictos y prefieres retirarte en lugar de resolverlos, git merge --abort cancela la fusión y restaura tu rama exactamente al estado en el que estaba antes de empezar. Es la vía de escape limpia de una fusión que se ha torcido.
Para una fusión que ya se completó, se deshace de otra forma - mira más abajo. Prueba esto en el terminal playground - una shell real en tu navegador.
Sintaxis
| Command | What it does |
|---|---|
git merge --abort | Cancela una fusión con conflictos y restaura el estado previo a la fusión |
git reset --merge | Equivalente más antiguo - aborta y restablece la fusión |
git merge --quit | Sale de la fusión pero mantiene el árbol de trabajo tal cual |
Deshacer una fusión que ya finalizó
Distinto de abortar - el commit de fusión ya existe.
| Situation | Command |
|---|---|
| La fusión es local, no está subida | git reset --hard ORIG_HEAD |
| La fusión ya está subida | git revert -m 1 <merge-hash> |
Preguntas frecuentes sobre abortar una fusión en Git
¿Cómo cancelo una fusión en curso?
Ejecuta
git merge --abort. Si una fusión se detuvo por conflictos y no quieres resolverlos, esto cancela toda la operación y devuelve tu rama y árbol de trabajo exactamente a como estaban antes de iniciar la fusión.¿Cuál es la diferencia entre git merge --abort y git reset --merge?
Hacen esencialmente lo mismo - cancelar una fusión en curso y restaurar el estado previo a la fusión.
git merge --abort es el comando moderno y diseñado específicamente para ello; git reset --merge es la forma más antigua que todavía funciona. Prefiere git merge --abort por claridad.¿Cómo deshago una fusión que ya se completó?
Eso no es abortar, ya que el commit de fusión ya existe. Si la fusión solo es local,
git reset --hard ORIG_HEAD devuelve la rama a donde estaba antes de la fusión; también funciona tras un fast-forward, donde HEAD~1 no serviría. Descarta el trabajo sin confirmar, así que comprueba git status primero. Si ya subiste la fusión, usa git revert -m 1 <merge-hash> para revertirla sin reescribir el historial compartido.¿Abortar una fusión perderá mis otros cambios?
git merge --abort restaura el estado justo anterior a la fusión, por lo que los cambios de la fusión se descartan, pero tu propio trabajo confirmado permanece intacto. Si tenías cambios sin confirmar antes de iniciar la fusión, confírmalos o guárdalos con stash primero - abortar restaura el estado del commit previo a la fusión.¿Puedo practicar esto en línea?
Sí. Abre el terminal playground para ejecutar
git merge --abort en una shell real en tu navegador - 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.