В чем разница между HG forget и HG remove?
Я хочу, чтобы mercurial удалил несколько файлов из текущего состояния репозитория. Тем не менее, я хочу, чтобы файлы существовали в предыдущей истории.
Как forget
и remove
отличаются, и могут ли они делать то, что я хочу?
5 ответов
'hg forget
- Это просто сокращение для 'hg remove -Af
'. Из"hg remove
' help:
...и-Af можно использовать для удаления файлов из следующей редакции без удаление их из рабочей справочник.
нижняя строка: 'remove
' удаляет файл из рабочей копии на диске (Если вы не используете -Af
) и 'forget
- нет.
лучший способ поставить это hg forget
is одинаковых to hg remove
за исключением то, что он оставляет файлы в код рабочей копии. Файлы остаются как неотслеженные файлы и теперь могут быть проигнорированы с шаблоном в .hgignore
.
другими словами, Я не могу сказать если вы используете hg forget
или hg remove
когда я тяну от вас. Файл, который вы запустили hg forget
on будет быть удалены, когда я обновляю это набор изменений - так же, как если бы вы использовали hg remove
вместо.
из документации вы можете использовать любую команду, чтобы сохранить файл в истории проекта. Похоже, вы хотите удалить, так как он также удаляет файл из рабочего каталога.
из ртутной книги в http://hgbook.red-bean.com/read/:
удаление файла не влияет на его история. Важно поймите, что удаление файла только два эффекта. Он удаляет текущая версия файла этот рабочий каталог. Он останавливает Mercurial от отслеживания изменений в файле, с момента следующей фиксации. Удаление файла никоим образом не изменить историю файла.
человек страница hg(1) говорит Это О забудьте:
отметьте указанные файлы, чтобы они больше не будет отслеживаться после следующего совершать. Это только удаляет файлы из текущая ветвь, а не из вся история проекта, и это делает не удалять их из работа справочник.
и это об удалении:
запланируйте указанные файлы для удаление из репозитория. Этот удаляет только файлы из текущего филиал, а не весь проект история.
если вы используете "hg remove b"
против файла со статусом "A", что означает, что он был добавлен, но не введен, Mercurial ответит:
not removing b: file has been marked for add (use forget to undo)
этот ответ является очень ясным объяснением разницы между remove и forget.
насколько я понимаю, это "hg forget"
для отмены добавленного, но не зафиксированного файла, чтобы он не отслеживался управлением версиями; в то время как "hg remove"
предназначен для извлечения зафиксированного файла из системы управления версиями.
этот нить есть пример использования hg remove
против файлов 7 различных типов статуса.
файл можно отслеживать или нет, вы используете hg добавить для отслеживания файлов и hg удалить или hg забывают отменить отслеживание. Используя hg удалить без флаги удалят файл и отследят его,hg забыть будет просто отследите его, не удаляя.