如何放弃本地提交但不放弃文件更改?

How do I abandon local commits but not file changes?

我想要 git reset HEAD~2 的 Mercurial 类似物(完全放弃最后 2 次提交——但保留本地文件更改)。

在我的具体情况下,我想放弃自上次 hg pull 以来的所有更改,所以我所做的是:

hg clone $(hg paths default) tmp
rm -rf .hg
mv tmp/.hg .
rm -rf tmp

有"official"方法吗?

Mercurial — revert back to old version and continue from there 的答案保留错误的提交。我想放弃它们 - 但不是本地更改。

要从存储库中删除修订,保留文件:

hg strip --keep firstBadRevisionToDelete