Mercurial 相当于 git 重置 HEAD,或 hg addremove 的逆?

Mercurial equivalent of git reset HEAD, or the inverse of hg addremove?

我刚刚将一堆文件从一个目录移动到另一个目录。我还 创建了 几个新文件。而我运行python setup.py sdist,生成一堆文件

我忘了将所有这些我不关心的文件添加到我的 .hgignore 所以当我 运行 hg addremove - 砰,我得到了一切。

恶心。

在 git 中,我会 运行 git reset 这将简单地取消我所有的更改,生活会很快乐。在 TortoiseHg 中,我只需点击小复选框几次即可取消选中所有选项,生活就会 快乐。

但是在命令行上...我只想回到之前的状态 hg addremove

我该怎么做?

可以分两步撤消添加 'adds' 和 'removals'。 首先,撤消 'adds':

hg forget "set:added()"

撤消删除有点棘手,因为如果我们只是 hg revert 标记为已删除的文件,如 `hg revert "set:removed()",这些文件将弹出回到工作目录中。这可能不是您想要的,所以让我们在还原后立即删除它们,对于 Linux 它将类似于:

hg locate "set:removed()" | xargs -I % sh -c 'hg revert "%"; rm "%"'