简体   繁体   中英

Mercurial: How do you undo changes?

When using Mercurial, how do you undo all changes in the working directory since the last commit? It seems like this would be a simple thing, but it's escaping me.

For example, let's say I have 4 commits. Then, I make some changes to my code. Then I decide that my changes are bad and I just want to go back to the state of the code at my last commit. So, I think I should do:

hg update 4

with 4 being the revision # of my latest commit. But, Mercurial doesn't change any of the files in my working directory. Why not?

hg revert will do the trick.

It will revert you to the last commit.

--all will revert all files.

See the link for the Man Page description of it.

hg update is usually used to refresh your working directory after you pull from a different repo or swap branches. hg up myawesomebranch . It also can be used to revert to a specific version. hg up -r 12 .

An alternative solution to hg revert is hg update -C . You can discard your local changes and update to some revision using this single command.

I usually prefer typing hg up -C because it's shorter than hg revert --all --no-backup :)

hg revert is your friend:

hg revert --all 

hg update merges your changes to your current working copy with the target revision. Merging the latest revision with your changed files (=current working copy) results in the same changes that you already have, ie, it does nothing :-)

If you want to read up on Mercurial, I'd recommend the very awesome tutorial Hg Init .

hg revert --all 

and then

hg pull -u 

works for me

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM