Как сделать Mercurial "HG remove" для всех отсутствующих файлов?
Я использую это, чтобы удалить файл из репозитория:
hg remove <full file path>
какую команду вы можете использовать для выполнения hg remove
on все файлы, которые были удалены локально?
удаленным локально, я имею в виду тех, кто появляется с !
когда вы hg status
.
для добавления, вы можете просто сделать hg add
добавить все новые файлы (с префиксом ?
).
4 ответов
это добавит все новые файлы, которые не игнорируются, и удалите все локально отсутствующие файлы
hg addremove
любой из них удалит все локально отсутствующие файлы (это одна и та же команда)
hg remove --after
hg remove -A
Если вы намерены сделать addremove и commit, его можно объединить с опцией'- A', как показано здесь:
hg commit -A -m 'Commit with addremove'
исходный вопрос спросил, Как удалить (т. е. забыть) файлы, которые отображаются как "!"
при использовании hg st
. Прямой подход, который имеет преимущество прозрачности, заключается в использовании hg st
С :
hg -v forget $(hg st -nd)
(конечно, файлы будут забыты на следующий commit.)
флаги хорошо документированы в другом месте (например, самой командой hg), но вкратце:
-
-n
означает " имя файла только" -
-d
означает "выбрать файлы, которые были удалены"
Если вы хотите addremove и commit, но не готовы зафиксировать остальные ваши изменения, я думаю, вам все равно придется их перечислить:
$ hg st
M modified-file
A added-file
R removed-file-1
R removed-file-2
$ hg commit -m"remove removed-file-1 and removed-file-2" removed-file-*
abort: removed-file-*: No such file or directory
$ hg commit -m"remove removed-file-1 and removed-file-2" removed-file-1 removed-file-2
committed changeset 185:628800a7af84