Подтвердить что ты не робот

Mercurial: Как вы отменяете изменения?

При использовании Mercurial, как вы отмените все изменения в рабочем каталоге с момента последнего коммита? Похоже, это было бы просто, но это ускользало от меня.

Например, допустим, что у меня 4 коммиты. Затем я вношу некоторые изменения в свой код. Затем я решаю, что мои изменения плохие, и я просто хочу вернуться к состоянию кода при моей последней фиксации. Итак, я думаю, что я должен сделать:

hg update 4

при этом 4 - это ревизия № моей последней фиксации. Но Mercurial не меняет ни один из файлов в моем рабочем каталоге. Почему бы и нет?

4b9b3361

Ответ 1

hg revert выполнит трюк.

Он вернет вас к последнему фиксации.

--all вернет все файлы.

См. ссылку для описания его страницы.

hg update обычно используется для обновления вашего рабочего каталога после того, как вы вытащите его из разных разделов репо или свопинга. hg up myawesomebranch. Он также может использоваться для возврата к определенной версии. hg up -r 12.

Ответ 2

Альтернативным решением для hg revert является hg update -C. Вы можете отменить свои локальные изменения и обновить до некоторой версии с помощью этой единственной команды.

Обычно я предпочитаю печатать hg up -C, потому что он короче hg revert --all --no-backup:)

Ответ 3

hg revert - ваш друг:

hg revert --all 

hg update объединяет ваши изменения с текущей рабочей копией с целевой ревизией. Слияние последней версии с вашими измененными файлами (= текущая рабочая копия) приводит к тем же изменениям, которые у вас уже есть, т.е. Ничего не делает: -)

Если вы хотите прочитать Mercurial, я бы рекомендовал очень классный учебник Hg Init.

Ответ 4

hg revert --all 

а затем

hg pull -u 

работает для меня