У меня пока нет представителя, чтобы прокомментировать другие ответы, я просто хотел добавить, что столкнулся со случаем, когда две команды НЕ имеют одинакового эффекта. Я попал в странное состояние, так что это определенно крайний случай. Вот что произошло:
Был в ветке, все чисто. Я проверил master git checkout masterи обнаружил, git statusчто были изменения в существующих файлах, не предназначенных для фиксации (да, в коде, который я только что проверил). Я попытался вернуться в чистое состояние, тайник утверждал, что завершен, но git statusвсе еще не изменился. Тоже пробовал git reset --hard HEAD. Он тоже сообщил об успешном завершении, но статус не изменился. Я не мог отменить эти странные изменения.
Однако git checkout -fрешил это. Я смог выйти из этого странного состояния. Так что, по крайней мере, в некотором смысле это не одно и то же.