Cómo deshacer los últimos commits de Git en local
¿Cuántas veces nos habremos equivocado usando Git y hemos hecho un commit de algo que no queríamos? En mi caso, muchas veces. La buena noticia es que es posible deshacer los últimos commits de Git en local.
Supongamos que haces un git add .
y luego haces un commit, que será el que hay que deshacer:
git commit -m "I will undo this commit message"
Los pasos que vamos a seguir para deshacer un commit en local son:
- Deshacer el cambio
- Hacer las correcciones necesarias a nuestro código
- Añadir de nuevo los cambios
- Hacer el commit de nuevo
Deshacer un commit en local
Para deshacer un commit en local ejecutaremos el siguiente comando:
git reset HEAD~
git reset
es el comando responsable de deshacer los cambios. Deshará tu último commit dejando tu proyecto sin modificar, es decir, que no perderás los cambios que hayas hecho.
Modificar los archivos en local
Ya que hemos deshecho un commit porque hemos encontrado un error en los cambios que habíamos añadido, en este paso simplemente habrá que modificar los archivos necesarios para arreglar el problema.
Añadir de nuevo los cambios
Simplemente habrá que ejecutar git add .
de nuevo. Si no quieres añadir todos, especifica el nombre de los archivos que quieres añadir con:
git add file_1.txt file_2.txt
Hacer un commit con los cambios aplicados
Tras haber solucionado el problema, ya podremos volver a realizar de nuevo el commit. Tenemos dos opciones: utilizar el mismo mensaje de commit que habíamos escrito antes o modificarlo.
Para reutilizar el mismo mensaje de commit sin modificarlo:
git commit ORIG_HEAD
Si quisiéramos modificarlo, también podríamos añadir la opción -c
:
git commit -c ORIG_HEAD
Esto abrirá un editor de texto para poder modificar el commit. Si no, también podéis utilizar el amend
, que es lo que yo suelo usar:
git commit --amend
También nos abrirá un editor de texto para que podamos modificar el mensaje de commit.
¡Y con esto, ya tendremos el cambio deshecho en Git, arreglado y commiteado!