Si utilizas GIT como control de versiones durante el desarrollo de software, puede ser necesario deshacer un commit previo en caso de cometer algún error o para solucionar un problema. Existen diversas formas de revertir un commit, algunas pueden tener más o menos consecuencias sobre el histórico de commits y probablemente el comando revert sea el más recomendable de utilizar.
Hoy veremos el funcionamiento del comando git revert
La sintaxis básica de este comando es la siguiente:
git revert <commit>
Donde es el hash del commit que deseas deshacer.
Al usar este comando, Git creará un nuevo commit que hace exactamente los cambios inversos de los que contenía el commit original. Esto significa que el commit original todavía está presente en el historial del repositorio, pero sus cambios han sido revertidos.
a1b2c3d4
, deberías ejecutar el siguiente comando:git revert a1b2c3d4
Una vez que hayas ejecutado el comando, Git abrirá tu editor de texto de consola configurado de forma predeterminada para que puedas revisar los datos y modificar el mensaje de commit por default que se ve de la siguiente forma Revert <commit_message>
, donde <commit_message> es el mensaje del commit original. Si tu editor de texto predeterminado es VIM deberás hacer lo siguiente para guarda y salir del editor de consola:
- Presiona la tecla ESCAPE (Esc).
- Teclear lo siguiente
:wq
(significa «write» y «quit»). - Presionar tecla intro (enter).
Estos pasos guardarán los cambios y cerran VIM. Una vez hecho esto solo deberás que hacer push para subir tu nuevo commit que revierte los cambios del original.
Es importante tener en cuenta que, si el commit que estás revirtiendo tiene cambios que generen conflictos con commits creados posteriormente al original, puede que necesites mergear algunos cambios manualmente antes de completar el proceso de revert.
git revert
nos permite deshacer cambios de una manera relativamente sencilla y estos cambios, al generarse como un nuevo commit, no alteran la línea de tiempo de commits ya realizados, por lo que no afectan a otros desarrolladores que ya tengan descargado el commit que estás revirtiendo, como si pasa con otras alternativas que permiten revertir código como git reset
. Por este motivo, siempre que se pueda, te recomiendo utilizar git revert
por sobre otras opciones disponibles.