Я хочу, чтобы Mercurial удалил несколько файлов из текущего состояния хранилища. Однако я хочу, чтобы файлы существовали в предыдущей истории.
Как forget
и remove
отличаются, и они могут делать то , что я хочу?
version-control
mercurial
Пол Натан
источник
источник
Ответы:
«
hg forget
это просто сокращение дляhg remove -Af
». Изhg remove
справки ' ':Итог: '
remove
' удаляет файл из вашей рабочей копии на диске (если вы не используете-Af
), а 'forget
' нет.источник
Лучший способ положить, что
hg forget
является идентичным с , заhg remove
исключением , что он оставляет файлы позади в вашей рабочей копии. Файлы остаются как неотслеживаемые файлы и теперь могут при желании игнорироваться шаблоном в.hgignore
.Другими словами, я не могу сказать , использовали ли вы
hg forget
илиhg remove
когда вытащил от вас. Файл , который вы запускалиhg forget
на будет удален при обновлении с этой ревизией - так же , как если бы вы использовалиhg remove
вместо этого.источник
Из документации вы, очевидно, можете использовать любую команду, чтобы сохранить файл в истории проекта. Похоже, вы хотите удалить, так как он также удаляет файл из рабочего каталога.
Из книги Mercurial по адресу http://hgbook.red-bean.com/read/ :
Страница man hg (1) говорит об этом:
А это по поводу удаления:
источник
Если вы используете
"hg remove b"
файл со статусом «A», что означает, что он был добавлен, но не зафиксирован, Mercurial ответит:Этот ответ является очень четким объяснением разницы между удалением и забыванием.
Насколько я понимаю,
"hg forget"
это для удаления добавленного, но не зафиксированного файла, чтобы он не отслеживался контролем версий; в то время"hg remove"
как для извлечения зафиксированного файла из контроля версий.В этой теме есть пример для использования
hg remove
против файлов 7 различных типов статуса.источник
источник