Git: revertir una fusión

G

Si fusiona una rama con otra y, por cualquier motivo, decide que desea deshacer la fusión, existen algunas formas de hacerlo con Git.

La solución a esto es más simple si aún no ha enviado los cambios a un repositorio remoto, y si lo ha hecho, es probable que deba confiar en algo como git revert en lugar de la solución propuesta a continuación. En este breve artículo, explicaré cómo deshacer una combinación de Git que aún no se ha enviado.

El primer paso sería utilizar reflog para encontrar la confirmación justo antes de la fusión:

$ git reflog

Ejecutar esto en su repositorio devolverá una lista de confirmaciones recientes, incluidos sus hashes abreviados, distancia desde HEADy descripción. Se verá algo como esto:

$ git reflog
8135d07 [email protected]{0}: commit (merge): Merge branch local/bug-34 into local/master
03979c8 [email protected]{1}: commit: Added support for query params
9f7a993 [email protected]{2}: commit (initial): Initial commit

Una vez que encuentre el compromiso al que desea volver, use el reset comando, similar a lo que hicimos al volver a una confirmación anterior, que es esencialmente lo que estamos haciendo aquí:

$ git reset --hard <commit-hash>

Entonces, en el ejemplo anterior, es posible que deseemos volver a la confirmación con el mensaje “Se agregó soporte para parámetros de consulta”, lo que haríamos así:

$ git reset --hard 03979c8

los --hard La opción revertirá el código en el árbol, la preparación y las copias de trabajo. Si no quiere perder ningún cambio local que haya realizado, --merge o --mixed pueden ser mejores opciones para ti.

Si el compromiso al que quieres volver está solo uno detrás HEAD, entonces puedes usar ORIG_HEAD como un atajo en el reset mando:

$ git reset --hard ORIG_HEAD

Esto será más fácil en algunos casos, ya que no tendrá que usar reflog para encontrar el hash de confirmación. ORIG_HEAD es aproximadamente equivalente a [email protected]{1}, por lo que solo utilícelo si desea revertir una única confirmación.

Nota: Una vez que haya enviado los cambios a un repositorio remoto, no se recomienda revertir las confirmaciones de esta manera, ya que estaría borrando el historial. En ese caso, recomendaría usar el git revert comando, que deshará los cambios no deseados como una confirmación separada.

 

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad