obvio171 obvio171 - 2 months ago 23
Git Question

How do I git reset --hard HEAD on Mercurial?

I'm a Git user trying to use Mercurial.

Here's what happened: I did a

hg backout
on a changeset I wanted to revert. That created a new head, so hg instructed me to merge (back to "default", I assume). After the merge, it told me I still had to commit. Then I noticed something I did wrong when resolving a conflict in the merge, and decided I wanted to have everything as before the
hg backout
, that is, I want this uncommited merge to go away. On Git this uncommited stuff would be in the index and I'd just do a
git reset --hard HEAD
to wipe it out but, from what I've read, the index doesn't exist on Mercurial. So how do I back out from this?

Answer

If you've not yet commited, and it sounds like you haven't you can undo all the merge work with hg update --clean.

However, in newer mercurial's there's a handy command to re-merge a single file: hg resolve path/to/file.ext. From the hg help resolve:

The available actions are: ...

 4) discard your current attempt(s) at resolving conflicts and

restart the merge from scratch: "hg resolve file..." (or "-a" for all unresolved files)