Как отменить все добавленные файлы в Mercurial
Скажем, я набираю hg add
в Mercurial, и в моей рабочей директории есть куча необработанных файлов, которые не игнорируются. Каков самый простой способ удалить все эти файлы без явного ввода имени каждого файла?
Можно ли просто добавить их все с помощью одной команды?
Ответы
Ответ 1
Введение
Вы всегда должны задавать вопросы, которые содержат как можно больше информации. Потому что теперь ваш вопрос, в зависимости от некоторых условий, может иметь совершенно разные ответы.
Case One - никаких локальных изменений в уже версированных файлах, только добавленные (и не зафиксированные) файлы
hg revert
вернет ваш рабочий каталог в состояние после последнего коммита, отменив все его изменения.
Case One - локальные изменения, которые вы хотите сохранить, а иногда добавляемые файлы
- Читайте о наборах файлов в Mercurial.
- Используйте набор файлов в команде
hg forget
, что-то вроде hg forget "set:added()"
.
Ответ 2
Используйте hg revert
или hg forget
в файлах (оба делают то же самое для файла, в котором вы запускали hg add
). Чтобы избежать ввода имен файлов, вы можете использовать fileset следующим образом:
$ hg revert "set:added()"
Это вернет файл обратно к тому, как он выглядит в родительской версии рабочей копии, т.е. он снова станет неизвестным.
Ответ 3
Вы всегда можете просто повторить клонирование своего репозитория, а затем заменить (удалить существующий, а затем скопировать новый).hg-каталог в рабочей папке с тем, который был создан из нового клонирования... (если у вас нет ожидающих коммитов.. )