Как вернуть незафиксированные изменения, включая файлы и папки?
есть ли команда git для возврата всех незафиксированных изменений в рабочем дереве и индексе, а также для удаления вновь созданных файлов и папок?
10 ответов:
вы можете выполнить следующие две команды:
# Revert changes to modified files. git reset --hard # Remove all untracked files and directories. (`-f` is `force`, `-d` is `remove directories`) git clean -fd
Если вы хотите отменить изменения только в текущем рабочем каталоге, используйте
git checkout -- .
а перед этим вы можете перечислить файлы, которые будут возвращены без каких-либо действий, просто чтобы проверить, что произойдет, с помощью:
git checkout --
используйте " git checkout -- ..."отменить изменения в рабочем каталоге
git checkout -- app/views/posts/index.html.erb
или
git checkout -- *
удаляет все изменения, внесенные в файлы проиндексированы в состояние ЖКТ например
modified: app/controllers/posts.rb modified: app/views/posts/index.html.erb
один нетривиальный способ заключается в выполнении этих двух команд:
git stash
Это переместит ваши изменения в тайник, возвращая вас в состояние головыgit stash drop
это приведет к удалению последнего тайника, созданного в последней команде.
git clean -fd
не помогло, новые файлы остались. То, что я сделал, это полностью удалить все рабочее дерево, а затем
git reset --hard
в разделе "Как очистить мой локальный рабочий каталог в git? " за советом добавить
-x
возможность очистки:git clean -fdx
Примечание
-x
флаг удалит все файлы, игнорируемые Git, поэтому будьте осторожны (см. обсуждение в ответе, на который я ссылаюсь).
обратите внимание, что все еще могут быть файлы, которые, похоже, не исчезнут - они могут быть неотредактированы, но git мог пометить их как редактируемые из-за изменений CRLF / LF. Смотрите, если вы внесли некоторые изменения в
.gitattributes
недавно.в моем случае я добавил настройки CRLF в
.gitattributes
файл и все файлы остались в списке "измененные файлы" из-за этого. Изменения .настройки gitattributes заставили их исчезнуть.