Deshacer cambios

Puede ser que mientras trabajamos nos damos cuenta de un error que debemos deshacer y ya hemos confirmado.
Cuando esto sucede podemos utilizar un git reset para volver a un commit anterior. También podemos usar git revert para crear un commit que sea exactamente lo contrario al commit que tenemos. Así quedaría como que nunca ha existido.
La pregunta mas común es ¿Cuando uso git reset y cuando git revert?

Bien, por la experiencia que tengo, git reset debes usarlo solo en un entorno local y en el cual sea un proyecto propio, cuando trabajes en grupo utiliza siempre git revert para indicar que has revertido un commit y dejar constancia de ello.

Git revert suele usarse con el hash del commit, git reset también puede ser usado así, aunque lo mas común es regresar justo al commit anterior, entonces le indicamos al puntero HEAD que se mueva una casilla.

git reset HEAD^1
git revert 7dfcc234

Existe otro método de deshacer cambios aunque es anterior al commit, se trata de checkout. Es para deshacer cambios realizados pero no confirmados. Este comando nos lo indica el propio git cuando comprobamos el estado del repositorio.

git checkout fichero