Вы можете сделать (из своего корня репо)
git checkout HEAD -- .
или альтернативно (как уже предложено eftshift0 и Code-Apprentice в их ответах)
git reset --hard HEAD
Обе команды восстановят ваши файлы в том состоянии, в котором они были при последнем коммите.
Предупреждение: эта операция не отменяется . Если у вас есть малейшее сомнение относительно будущего использования этих неудачных изменений, лучше всего stash
их:
git stash
(и иметь возможность проверить их или использовать повторно на более позднем этапе)
А что касается других рассмотренных вами команд, git reset
(здесь подразумевается HEAD
) "только" получит все изменения из индекса, а не из рабочего дерева. Таким образом, ваши нежелательные изменения все равно будут присутствовать в ваших файлах, просто без изменений для следующей фиксации.
И остерегайтесь git clean -fdx
, если использовать его опасно, это опасная команда, поскольку она удалит все неотслеживаемые файлы. Он имеет свое применение, но в случае, который вы описываете (перевод вашего проекта в состояние, в котором он был, наконец, зафиксирован), это не то, что вам нужно.