git checkout -- .
obviamente solo funcionará en el directorio actual (y los subdirectorios del mismo), git reset --hard
operará en el árbol de trabajo completo.
git checkout -- .
solo actualizará el árbol de trabajo y dejará los archivos ya montados como están, mientras que git reset --hard
coincidirá con el índice y el árbol de trabajo con el compromiso HEAD.
cuando se utiliza con un refspec:
reset
establecerá la cabeza rama actual a lo dado cometer (y coincide con el índice y el árbol de trabajo)
checkout
pasará a dicha rama, dejando a los cambios locales intacta, cuando tocan archivos que no cambian entre la rama actual y la rama a ser sacados
posible duplicado de [¿Hay una diferencia entre "git reset --hard hash" y "git checkout hash"?] (Http://stackoverflow.com/questions/2541545/is-there-a-difference-between -git-reset-hard-hash-y-git-checkout-hash) – Casebash