Por lo que sé, cuando quieres deshacer algo en Git tienes que encontrar explícitamente el comando para deshacer lo que sea que hayas hecho y emitirlo. Por ejemplo, una forma entre muchas para deshacer una confirmación y rehacer que es seguir el ejemplo de here,¿Por qué no hay deshacer/rehacer en Git?
$ git commit ...
$ git reset --soft HEAD^
$ edit
$ git add ....
$ git commit -c ORIG_HEAD
O para deshacer un tirón, puede seguir las instrucciones de here,
$ git reset --hard
Pero estos comandos no necesariamente funcionan indistintamente. ¿Hay alguna razón por la cual Git no permite comandos simples para deshacer y rehacer? ¿Algo que ver con la filosofía detrás de esto? Además, no tengo mucha experiencia con otros sistemas de control de versiones, pero ¿alguno de ellos ofrece un comando simple de deshacer y rehacer?
No estoy seguro, pero creo que puedes hacer esto usando 'git rebase'. Comprueba este http://gitready.com/intermediate/2009/01/31/intro-to-rebase.html – gustavotkg
La idea es que generalmente nunca deseas hacer cosas que te hagan perder partes del historial. Deshacer una confirmación lo eliminaría del historial, por lo que generalmente no es algo que haría. – poke
@poke Bueno, Adobe Photoshop, por ejemplo, mantiene un historial extenso y aún le permite deshacer/rehacer. ¿Por qué no haría Git lo mismo? – john