Как отменить все добавленные файлы в Mercurial

скажем, я набираю hg add в Mercurial, и есть куча неотслеженных файлов в моем рабочем каталоге, которые не игнорируются. Каков самый простой способ отменить добавление всех этих файлов без явного ввода имени каждого файла?

могу ли я просто удалить их все с помощью одной команды?

3 ответов


предисловие

вы всегда должны задавать вопросы, которые содержат как можно больше информации. Потому что теперь ваш вопрос, в зависимости от некоторых условий, может иметь совершенно разные ответы.

Case One - никаких локальных изменений в уже версионных файлах, только добавленные (и не зафиксированные) файлы

hg revert вернет ваш рабочий каталог в состояние после последнего фиксации, отменяя все его изменения он.

Case One-локальные изменения, которые вы хотите сохранить и иногда добавлять файлы

  1. читайте о наборах файлов в Mercurial.
  2. используйте набор файлов в hg forget команда, что-то вроде hg forget "set:added()".

использовать hg revert или hg forget в файлах (оба делают то же самое для файла, который вы запустили hg add on). Чтобы избежать ввода имен файлов, вы можете использовать fileset такой:

$ hg revert "set:added()"

это вернет файл обратно к тому, как он выглядел в рабочей копии родительской версии, т. е. он снова станет неизвестным.


вы всегда можете просто повторно клонировать свой репозиторий, а затем заменить (удалить существующий, а затем скопировать новый).каталог hg в вашей рабочей папке с каталогом из свежего клона... (предполагая, что у вас нет ожидающих коммитов..)