Me he dado cuenta de que estoy un tanto encandilado con el tema de cómo deshacer el último commit de un repositorio Git. Publiqué un vídeo muy sencillo al respecto en verano del 2017 y un artículo más completo en el 2019. Te emplazo a consultar el post del 2019 si quieres más detalle del que proporciono en esta ocasión.
Tomando como referencia un post publicado por Miguel Angel Durán en su página web voy a proporcionar unas pautas muy sencillas y directas.
Caso 1: quieres deshacer un commit no publicado
Este comando sirve siempre y cuando todavía no hayas hecho push
.
Si quieres mantener los cambios
Deshace el commit, pero mantiene en local los cambios que habías hecho.
git reset --soft HEAD~1
Si no quieres mantener los cambios
git reset --hard HEAD~1
Caso 2: quieres modificar el último commit no publicado
Este comando sirve siempre y cuando todavía no hayas hecho push
.
Si sólo quieres modificar el mensaje del último commit
git commit --amend -m "Este es el mensaje correcto"
Si quieres añadir más cambios al último commit
# Añade los archivos con modificaciones que quieres añadir al commit anterior
git add src/archivo-con-cambios.js
# Vuelve a hacer el commit con el parámetro amend
git commit --amend -m "Mensaje del commit"
Caso 3: quieres deshacer un commit ya publicado
Con este comando se añadirá un nuevo commit que deshace todos los cambios de un commit previo en concreto. De ese modo, los cambios del commit que has deshecho quedan almacenados en el historial y se pueden llegar a recuperar en un futuro.
git revert 74a1092