¿Cómo reinicio completamente mi GIT local a una confirmación previa?

Quiero hacer lo siguiente a mi copy local:

  1. Descartar todos los cambios que he hecho.
  2. Elimine todos los files nuevos que se hayan agregado.
  3. Restablecer mi copy local a una ID de confirmación anterior para que solo existan en mi copy local los files que existían en ese momento.

¿Debo ejecutar algo como lo siguiente?

git checkout ID . git clean -fd 

Me gusta esto:

 git reset --hard [sha] 

Tenga en count que no eliminará los files no rastreados, ya que Git no sabe nada sobre ellos. Todos tus cambios por etapas y sin escena se perderán cuando ejecutes este command, así que ten cuidado con eso.

Si accidentalmente ejecuta esto y desea volver a la confirmación anterior, git reflog le mostrará un resultado como este:

 86b46fd HEAD@{0}: 86b46fd: updating HEAD a2b03fa HEAD@{1}: commit: [commit message] 

El HEAD@{1} aquí es el viejo sha. Restablecerlo utilizando:

 git reset --hard HEAD@{1}