Cómo deshacer el último commit con Git

Apuntes sobre Git

Publicado por Aunitz Giménez el 30 septiembre 2020

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