Nie mam jeszcze przedstawiciela do komentowania innych odpowiedzi, chciałem tylko dodać, że natknąłem się na przypadek, w którym dwie komendy NIE dają tego samego efektu. Wpadłem w dziwny stan, więc jest to zdecydowanie skrajny przypadek. Oto, co się stało:
Byłem w gałęzi, wszystko czyste. Sprawdziłem wzorzec git checkout masteri stwierdziłem git status, że w istniejących plikach nie zostały wprowadzone zmiany (tak, w kodzie, który właśnie wypisałem). Próbowałem schować, aby wrócić do czystego stanu, skrytka rzekomo ukończona, ale git statusnadal nie została zmieniona. Próbowałem też git reset --hard HEAD. To również zgłosiło pomyślne ukończenie, ale status nie był inny. Nie mogłem przerwać tych dziwnych zmian.
Jednak git checkout -frozwiązałem ten problem. Udało mi się uciec z tego dziwnego stanu. Tak więc, przynajmniej w pewnym sensie, te dwie rzeczy nie są takie same.