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
- Diferencia entre Git RM --Cached y Git Reset File
- Diferencia entre los comandos Git Reset, Revert y Checkout
- Haga que la rama de desarrollo sea idéntica a la rama principal
- Revertir una combinación de Git con conflictos
- Varios métodos utilizados para eliminar los cambios locales de Git
- Deshacer cambios en Git