Mercurial: как вы отменяете изменения? - PullRequest
58 голосов
/ 09 июля 2010

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

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

hg update 4

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

Ответы [ 4 ]

86 голосов
/ 09 июля 2010

hg revert добьются цели.

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

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

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

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

18 голосов
/ 10 июля 2010

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

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

6 голосов
/ 09 июля 2010

hg revert ваш друг:

hg revert --all 

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

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

1 голос
/ 30 января 2013
hg revert --all 

, а затем

hg pull -u 

у меня работает

...