- Básicos Git (I): Cherry pick
- Básicos Git (II): Rebase
- Básicos Git (III): Revert
- Básicos Git (IV): Reset
- Básicos Git (V): Amend
- Básicos Git (VI): Stash
Reset hace que el apuntador actual de la rama se desplace pudiendo apuntar a commits anteriores o posteriores en el historial.
Normalmente el apuntador de la rama apunta al último commit pero es posible moverlo en caso de que se quiera volver a una situación anterior de la rama y continuar a partir de ella.
Vamos a suponer que tenemos inicialmente una rama master y una develop, al crear la rama develop como es normal el apuntador apunta a HEAD, es decir al último commit, si añadiéramos un nuevo commit (Commit #3) el apuntador se desplazaría junto con el.

Ahora vamos a usar la opción reset para desplazarnos hacia atrás en el historial, para esto accederemos al historial de main y usaremos la opción reset estando posicionados en la rama en la que nos queremos mover, en este caso develop.
Keep changes (–mixed)
Esta opción provoca que si tenemos ficheros modificados se mantendrán a la par que nos desplazamos hacia atrás en el historial.

Para verificar esto volvemos a la sección changes y veremos que los cambios siguen ahí y que a su vez los demás ficheros han sido cambiados a la versión concreta elegida.
Keep changes (–hard)
Esta opción provoca que si tenemos algún cambio se perderá a la par que nos desplazamos hacia atrás en el historial.

Para verificar esto volvemos a la sección changes y veremos que no hay ningún cambio pendiente y al igual que en el caso anterior los ficheros han sido cambiados a la versión elegida.
Bonus
Se puede deshacer el último commit usando reset en una rama local, simplemente habría que hacer un reset al commit anterior al que estamos.
Esto se debe a que como no hemos hecho push no hemos avanzado en el historial y al hacer reset podemos volver al punto de partida.
Por ejemplo tenemos un commit en una rama local:

Ahora vamos a deshacer el último, tenemos que seleccionar el anterior (Commit Id e52d15a7).

Solo tenemos que pulsar la opción de reset eligiendo –hard si queremos deshacer el commit y borrar el contenido o –mixed si queremos deshacer el commit pero manteniendo el contenido, en este caso veremos los contenido del commit en la sección de changes.

Como detalle final se puede hacer también un reset al último commit de la rama local, en ese caso lo que haríamos sería ponerlo como commit pendiente de realizar un push, es decir seguiría siendo un commit y no aparecía en changes.
Esto nos puede servir para modificarlo a través de un amend si queremos mantener el contenido pero además agregar otros nuevos.