Categorías
Desarrollo

¡Nooo! ¡La he liado! Cómo deshacer un commit en Git

Te contamos como deshacer el último commit en Git, incluso si se hecho push a la rama remota.

Seguro que nos ha pasado alguna vez:

Estamos programando y hemos terminado un desarrollo. Todo está ok y vamos a subir al entorno de pruebas (o mejor aún a producción 😝)…

Al hacer el merge de los cambios a la rama correspondiente y estamos tan seguros de lo que estamos haciendo que, siguiente, siguiente, commit, push y listo, todo subido.

Cuando de repente, nos fijamos y ¡Oh no! ¡La he liado! nos damos cuenta de que hemos subido los cambios a la rama que no era… o hemos subido cambios que no queríamos…

No hay problema, con Git siempre hay solución. Os traigo un par de instrucciones que sabiendo como funcionan, nos soluciona el problema.

Para deshacer el último commit en la rama de local donde nos encontramos, ejecutaremos la siguiente instrucción:

git reset --hard HEAD~1

Si queremos ir hasta un commit concreto:

git reset --hard <sha1-commit-id>

Si hemos realizado push de los cambios a la rama remota, deberemos ejecutar la siguiente instrucción:

git push origin HEAD --force

OJO: git reset –hard borrará todos tus cambios de local. Asegúrate de realizar un stash de cualquier cambio que quieras mantener antes de ejecutar este comando.

Fuente: Stack Overflow