DEV Community

Cover image for Cómo deshacer un commit erroneo
Roberto Morais
Roberto Morais

Posted on

Cómo deshacer un commit erroneo

Es muy posible que hayas querido deshacer un commit en tu proyecto porque pusheaste algo que no deberías... Tranquilo, Git permite deshacerlo todo, así que respira y mira los siguientes comandos.

Deshacer el último commit no pusheado

Es muy posible que hayas hecho un commit en el que has añadido varios archivos, y alguno de ellos no corresponde al commit que intentas subir. Hay dos formas de deshacer este commit que está en local, en tu equipo, depende de si quieres o no mantener los cambios en los ficheros:

Si quieres mantenerlos, lanza el siguiente comando:

git reset --soft HEAD~1
Enter fullscreen mode Exit fullscreen mode

El comando git reset hace que la rama actual retroceda a la revisión que le indicamos. Con el --soft le indicamos que queremos mantener los cambios que habíamos hecho en ese commit. En este caso le decimos HEAD~1 para volver a la versión inmediatamente anterior a la que estamos ahora. La de antes de hacer el commit.

Si no quieres mantener los cambios, lanza el siguiente comando:

git reset --hard HEAD~1
Enter fullscreen mode Exit fullscreen mode

Al cambiar el --soft por el --hard le decimos a Git que queremos volver a la versión anterior de código sin guardar los cambios del commit que queremos revertir. Esto es como si no hubiéramos hecho nada, así que piénsalo bien antes de usarlo.

Hacer cambios sobre un commit no pusheado

Tal vez, quieres hacer unos cambios mínimos sobre el commit que acabas de hacer antes de publicarlo.

Por ejemplo, si quieres cambiar el mensaje del commit:

git commit --amend -m "Mensaje correcto"
Enter fullscreen mode Exit fullscreen mode

Si lo que quieres es añadir un fichero más, porque lo acabas de editar o porque no lo habías añadido y corresponde a ese commit, debes lanzar el siguiente comando:

git add path/of/the/file
git commit --amend -m "Mensaje para el commit"
Enter fullscreen mode Exit fullscreen mode

Al añadir --amend al comando git commit hacemos ediciones sobre el últimos commit, siempre y cuando aún no esté pusheado (publicado).

Deshacer el último commit que hemos publicado

En esta ocasión, no solo has hecho el commit, si no que has ejecutado el comando git push y tu error está visible para todos los puedan ver ese repositorio. En este caso, solo tienes que lanzar el comando:

git revert ID_COMMIT
Enter fullscreen mode Exit fullscreen mode

Esto creará un commit con el código previo al commit que le indicas, de este modo habrás deshecho todos los cambios del commit indicado.

Además al hacerlo así, todos los cambios quedan en Git, incluida la rama que estás revirtiendo, por si te arrepientes de haber revertido los cambios.

Top comments (0)