I have three commits 1, 2 and 3. How can I rollback 2 and 3 and still keep the changed files of them??
1---2---3
=> 1 and changed files of 2 and 3
You use the strip
command:
strip changesets and all their descendants from the repository
with the --keep
option:
-k --keep do not modify working copy during strip
And since strip
is destructive of history it's not enabled by default. You enable it by adding these lines to your ~/.hgrc
file:
[extensions]
strip =
So in this case you'd do hg strip --keep 2
Note: requires Mercurial 2.8 or later. Before that you need to put mq =
in the .hgrc
instead.
If you use TortoiseHg, you can achieve this like that: