--amend
le dice a git que queremos incluir otros cambios al último commit y que abra el editor de texto por defecto para cambiar el mensaje.--hard
, los cambios del commit van a quedar en el espacio de trabajo, así que puedes volver a hacer un commit con ellos si es necesario.^
después de HEAD
. Por ejemplo, si quieres deshacer los tres últimos commits ejecutarías:--hard
, los cambios de esos tres commits van a quedar en el espacio de trabajo.^
. Por eso hay otra notación que hace lo mismo pero es más compacta:pick
, que significa que ese commit no se va a modificar. Los demás comandos son (excepto exec
que nunca lo hemos visto ser usado):r, reword
: queremos usar el commit pero cambiando el mensaje.e, edit
: queremos user el commit pero necesitamos hacer algunos ajustes.s, squash
: queremos unir el commit con el anterior modificando el mensaje.f, fixup
: queremos unir el commit con el anterior descartando el mensaje de este commit (dejando el del anterior).edit
.git reset
. Por ejemplo, podemos deshacer el último commit del reflog anterior con el siguiente comando: