Git reset

El comando git reset  te permite REESTABLECER su HEAD actual a un estado específico. Tú puedes restablecer el estado de archivos específicos, así como toda una rama entera.

Reiniciar un archivo o conjuntos de archivos

El siguiente comando te permite elegir selectivamente trozos de contenido revertirlo o eliminarlos del área stage.

git reset (--patch | -p) [tree-ish] [--] [paths]

Reiniciar estado de un archivo

Si, tú has movido un archivo al área de stage con git add, pero ya no quieres que forme parte del commit, tú puedes usar git reset eliminarlo del área stage:

git reset HEAD ARCHIVO_ELIMINAR_DEL_STAGE
Quitar archivo del stage o reiniciar su estado

Los cambios que hiciste seguirán en el archivo, este comando sólo elimina ese archivo del área stage.

Reiniciar una rama a su anterior commit

El siguiente comando restablece el HEAD de su rama actual, al commit dado y actualiza su índice. Básicamente rebobina el estado de tu rama, ahora todos los commits que escribas vendrán después del punto de RESET. Si omites el MODO, el valor predeterminado es --mixed:

git reset MODO COMMIT
Reiniciar estado inicial al commit escrito

Las opciones de MODOS son:

  • --soft: no reinicia el archivo índice o el árbol de trabajo, sino que reinicia el HEAD para commit. Cambia todos los archivos a "Cambios a realizar".
  • --mixed: Restablece el índice, pero no el árbol de trabajo e informa de lo que no ha sido actualizado
  • --hard: Restablece el índice y el árbol de trabajo. Cualquier cambio en los archivos de seguimiento en el árbol de trabajo desde el commit son descartados.
  • --merge: Restablece el índice y actualiza los archivos del árbol de trabajo que son diferentes entre el commit y el HEAD, pero mantiene los que son diferentes entre el índice y el árbol de trabajo.
  • --keep: Restablece las entradas de índice y actualiza los archivos en el árbol de trabajo que son diferentes entre commit y HEAD. Si un archivo que es diferente entre la commit y HEAD tiene cambios locales, el restablecimiento es abortado.

Traducido del artículo - The Git Reset Command