2012-04-24 2 views
23

У меня есть гипотетический Mercurial репозиторий на диске. Я больше всего люблю создавать новую функцию, когда понимаю, что полностью создал файл, над которым работаю, и хочу вернуть этот файл обратно в его последнее состояние фиксации.Как вернуть файл в состояние «last checkin» в Mercurial?

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

Есть ли команда mercurial, которая может обновлять только один файл?

ответ

28

Существует команда mercurial для восстановления файлов. hg revert это должно отменить любые изменения. Вы также можете передать имя файла, например, hg revert fileName.

3

Я считаю, что вы можете ввести hg revert /path/to/file/<file name>, и он просто обновит этот файл.

+1

Нет, это Git, что имеет это странное поведение для 'мерзавца checkout' (в Mercurial,' рт.ст. фотографии 'является псевдонимом для' hg update'). –

+0

Вы правы, благодарю вас за то, что вы меня исправили. – Kodi

+0

@Vari Ваш ответ некорректен? Если это так, пожалуйста, удалите. –

11

hg revert fileName вернет этот файл обратно к вашей ревизии. Если вы хотите вернуть все изменения, вы можете запустить hg revert --all.

Оба эти файла будут создавать файлы fileName.orig, чтобы вы могли сохранить изменения, которые вы хотите вернуть на всякий случай. Если вы хотите восстановить файл и не все .orig файлы, которые вы можете добавить -C вариант: hg revert fileName -C hg revert --all -C

+0

Мне кажется, что лучше добавить '* .orig' в мой файл' .hgignore', а затем просто оставить файлы '.orig'. Может быть, они мне понадобятся в один прекрасный день :) Если они вас беспокоят, вы можете использовать расширение для очистки, чтобы очистить их. –

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