2019 обновление:
С июля 2019 года , там была новая команда , которая делает именно это: git restore
.
В git status
, теперь Git рекомендует использовать эту команду вместо того, git checkout
как раньше.
Хотя эту команду также можно использовать для восстановления рабочего дерева до определенного коммита или для восстановления содержимого индекса, по умолчанию рабочее дерево восстанавливается до состояния в индексе (о чем здесь говорится).
Таким образом, чтобы восстановить файлы, соответствующие спецификациям пути (избавиться от их неизмененных изменений), вы должны сделать:
git restore <pathspec>
Например, чтобы восстановить все неотмеченные изменения в текущем каталоге, вы можете выполнить:
git restore .
Если вы запустите это из корня проекта, он восстановит все неустановленные изменения во всем хранилище.
Обратите внимание, что, как и в случае с git checkout -- .
(как указал Mariusz Nowak), при этом будут отменены только изменения в файлах, отслеживаемых Git, и не будут удалены любые новые неотслеживаемые файлы. Если вы хотите отменить любые неотмеченные изменения, включая новые неотслеживаемые файлы, вы можете запустить дополнительные:
git clean -df
Будьте очень осторожны с этой более поздней командой, поскольку вы можете отбросить файлы, от которых вы не собираетесь избавляться.
Примечание git restore
: поскольку это новая команда, ее страница руководства выдает предупреждение:
Эта команда является экспериментальной. Поведение может измениться.
Таким образом, возможно, что этот ответ может устареть, если поведение изменится в будущем. Таким образом, может быть целесообразно быстро запустить его man git-restore
перед использованием.
git-clean
только удаляет неотслеживаемые файлы из рабочего дерева git-scm.com/docs/git-clean