2013-03-27 3 views
22

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

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

+0

Дубликат http://stackoverflow.com/questions/6183374/undoing-last-addremove-in-mercurial – Eborbob

ответ

24

Предисловие

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

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

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

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

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

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

+0

Это кажется теоретическим, но, возможно, подверженным ошибкам. Я думаю, если бы у вас было огромное количество локальных изменений, которые вы не хотели бы вручную воспроизводить в новом клоне, это может быть лучшим выбором. Креативное решение в любом случае! – DaveInCaz

19

Использование hg revert или hg forget на файлы (как сделать то же самое для файла вы запускали hg add на). Для того, чтобы не вводить из имен файлов, вы можете использовать fileset так:

$ hg revert "set:added()" 

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

+0

Привет, Мартин. Предположительно, это более утончен, чем просто 'hg revert -a', который также будет возвращать изменения в существующие файлы, правильно? –

+0

@FaheemMitha Да, точно. –

Смежные вопросы