Git: revertir una fusi贸n

    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.

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *