Teniendo en cuenta de que queremos volver a un determinando commit podemos ejecutar los siguiente:
git reset --hard <hash-commit>
❯ git log --oneline --graph --decorate --all
* 1afc39b (HEAD -> master) gpg: Firmado el sáb 12 oct 2024 22:17:09 -05
| mi quinto commit
* d2014fa gpg: Firmado el sáb 12 oct 2024 22:16:03 -05
| mi cuarto commit
* 6ee2359 gpg: Firmado el sáb 12 oct 2024 22:11:07 -05
| mi tercer commit
* a7b8299 gpg: Firmado el sáb 12 oct 2024 21:55:36 -05
| mi segundo commit
* 02c207a gpg: Firmado el sáb 12 oct 2024 21:54:01 -05
mi primer commit
❯ git reset --hard a7b8299
Luego de ejecutar tendremos solo dos commit
❯ git log --oneline --graph --decorate --all
* a7b8299 (HEAD -> master) gpg: Firmado el sáb 12 oct 2024 21:55:36 -05
| mi segundo commit
* 02c207a gpg: Firmado el sáb 12 oct 2024 21:54:01 -05
mi primer commit
Esto puede indicar que los demás commits ya no existen, pero nosotros aun podemos verlos y regresar a los commits borrados.
Para volver a ver los commit borrados podemos ejecutar lo siguiente:
git reset <hash-ultimo-commit->
En este caso es nuetro quinto commit.
❯ git reset --hard 1afc39b
HEAD está ahora en 1afc39b mi quinto commit
❯ git log --oneline --graph --decorate --all
* 1afc39b (HEAD -> master) gpg: Firmado el sáb 12 oct 2024 22:17:09 -05
| mi quinto commit
* d2014fa gpg: Firmado el sáb 12 oct 2024 22:16:03 -05
| mi cuarto commit
* 6ee2359 gpg: Firmado el sáb 12 oct 2024 22:11:07 -05
| mi tercer commit
* a7b8299 gpg: Firmado el sáb 12 oct 2024 21:55:36 -05
| mi segundo commit
* 02c207a gpg: Firmado el sáb 12 oct 2024 21:54:01 -05
mi primer commit
Seguimiento de movimientos en HEAD o historial
❯ git reflog
c9fba54 (HEAD -> main) HEAD@{0}: commit: Actualización de README
b72a894 HEAD@{1}: commit: Agregado nuevo script de despliegue
ff91273 HEAD@{2}: reset: moving to ff91273
9b7ac14 HEAD@{3}: checkout: moving from main to feature-branch