Expertos en Symfony y Drupal

Trabajando con Git: deshacer un merge

En este minitutorial, vamos a explicar una forma de deshacer un merge realizado en un repositorio Git. Vamos a partir de la situación que se muestra en la siguiente imagen:

Repositorio Git

de un repositorio Git con dos ramas, rama_1 y rama_2 y se realiza un merge de rama_2 en rama_1:


$ git merge rama_2

Con lo que el repositorio quedará como se muestra a continuación:

Repositorio Git

Puede darse el caso que este merge se haya realizado por error o simplemente por alguna prueba de mezcla de código entre miembros del equipo para ver si existe conflicto, por ejemplo. En cualquier caso, si se quiere dar marcha atrás y deshacer el merge, puede hacerse de la siguiente manera.

Lo primero, será localizar el commit al que se pretende volver, con el comando git log:


$ git log

commit 68e980596d6d7129ef9e2c087bf968b918dfc035
Merge: f276278 ccedf4c
Author: Vabadus 
Date:   Wed Apr 29 13:17:32 2015 +0200

    Merge branch 'rama_2' into rama_1

commit ccedf4c914029747f2a0b2aa6384c5005f62a3c6
Author: Vabadus 
Date:   Wed Apr 29 13:17:10 2015 +0200

    Un cambio

commit f27627852cc1ffd952e51f755c93cec7482bd61f
Author: Vabadus 
Date:   Wed Apr 29 13:16:21 2015 +0200

    Otra modificación

commit 26bbd1a92211d0c3f750caada96a5162929f0673
Author: Vabadus 
Date:   Wed Apr 29 13:16:01 2015 +0200

    Una modificación

commit e455faaaba80b83ab073b15ad6a5bcce3a6b4ff0
Author: Vabadus 
Date:   Wed Apr 29 13:00:22 2015 +0200

    Crea repositorio

En este caso, será al commit f27627852cc1ffd952e51f755c93cec7482bd61f. Entonces, solo habrá que lanzar el siguiente comando para dar marcha atrás:


$ git reset --hard f27627852cc1ffd952e51f755c93cec7482bd61f
HEAD is now at f276278 Otra modificación

Si volvemos a mirar el estado del repositorio, veremos que se encuentra de nuevo como antes de realizar el merge:

Repositorio Git

[x] Este sitio utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando estás aceptando su uso. Política de cookies.