Git Deshacer Fusión

Azhar Bashir Khan 6 febrero 2022
Git Deshacer Fusión

En este tutorial, veremos cómo deshacer una fusión en Git.

En Git, fusionamos una rama con otra para integrar los cambios de la otra rama en el HEAD de la rama actual.

A veces, es posible que deseemos deshacer esta fusión. Podemos usar el comando de Git git reset para deshacer una fusión de git.

Ahora ilustraremos esto con un ejemplo.

Usando el git reset para deshacer una fusión en Git

Supongamos que hemos fusionado una rama a saber. feature1 con la rama main para integrar los cambios de esa rama en la rama main.

Ahora, decidimos deshacer esta fusión. Podemos usar git reset para esto.

Primero, necesitamos encontrar el commit sha que está antes de la fusión desde el registro en Git. Para ello, podemos utilizar el comando git log.

Ejecutaremos el comando git log de la siguiente manera.

$ git log --oneline
0e25143 Merge branch 'feature1'
23ad9ad Add the initial code base

Podemos ver que el 0e25143 es el commit sha de la fusión de la rama feature1 a la rama main. El 23ad9ad es el commit sha del compromiso antes de fusionar la rama feature1.

Usaremos el comando git reset con la opción --hard para restablecer la rama main al estado anterior a la fusión.

La sintaxis del comando git reset se encuentra a continuación.

git reset --hard commit_sha_before_merge

Ahora ejecutaremos el git reset de la siguiente manera.

$ git reset --hard 23ad9ad

Por lo tanto, ahora hemos deshecho la fusión (es decir,) reiniciado el HEAD de la rama actual, a saber. main al commit antes de la fusión.

Tenga en cuenta que cualquier cambio no confirmado o no guardado se perderá después de ejecutar el comando git reset dado anteriormente.

También podemos usar el comando git reset de la siguiente manera, especialmente si el último commit es de la fusión.

$ git reset --hard HEAD~1

Restablece el HEAD de la rama actual mediante un commit.

Del mismo modo, también podemos hacer lo siguiente.

$ git reset --hard ORIG_HEAD

El ORIG_HEAD apunta al commit antes de que tenga lugar la fusión.

Una opción más segura es usar la opción --merge con git reset de la siguiente manera.

$ git reset --merge ORIG_HEAD

La opción --merge con el comando git reset hace que se restablezca el índice y actualice los archivos que son diferentes entre el compromiso y el HEAD; pero mantendrá los cambios de los archivos que son diferentes entre el índice y el árbol de trabajo (es decir, los cambios que aún no se han agregado al índice).

Artículo relacionado - Git Reset

Artículo relacionado - Git Merge