使用变更集的一部分更新工作目录

Update the working directory with part of a changeset

我创建了一个变更集,其中包含许多单独的变更。我已经意识到其中一个更改可能不是一个好主意,我想更新我的工作目录以仅包含要处理的变更集的一部分,而不丢弃变更集本身。

在 git 方面,我想做类似于 git checkout -p HEAD~ 或类似

的事情
git checkout -b newbranch
git reset HEAD~
git add -p
git checkout -- .

我如何在 Mercurial 中执行此操作?

仔细阅读hg help revert, pay special attention to -r option and NAME (ordinary list of fileset).

在你的情况下(单个变更集,其中的一部分你想从工作目录中删除),你必须:

  • hg upthis 变更集
  • hg revert -r "p1(.)" set:SOME-FILESET 或者,代替文件集(“set:PATTERN”部分),只是“... FILE FILE2 FILE3 FILEN”

结果,您将获得一个可读的命令修改后的工作目录,其中只有需要的部分更改