如何撤消Mercurial中所有添加的文件

时间:2013-03-27 20:13:36

标签: mercurial add undo

假设我在Mercurial中键入hg add,并且我的工作目录中有一堆未被跟踪的文件未被忽略。在没有明确键入每个文件的名称的情况下,取消添加所有这些文件的最简单方法是什么?

我可以使用一个命令将它们全部取消添加吗?

4 个答案:

答案 0 :(得分:26)

<强>前言

您必须始终提出问题,其中包含尽可能多的信息。因为现在你的问题,取决于某些条件,可能有完全不同的答案。

案例一 - 在已经版本化的文件中没有本地修改,只添加(而不是已提交)文件

hg revert会将您的工作目录返回到上次提交后的状态,撤消所有更改。

案例一 - 您要保存并偶尔添加文件的本地修改

  1. 阅读Mercurial中的文件集。
  2. hg forget命令中使用文件集,例如hg forget "set:added()"

答案 1 :(得分:25)

对文件使用hg reverthg forget(对于您运行的文件hg add,都执行相同操作)。为避免输入文件名,您可以使用fileset,如下所示:

$ hg revert "set:added()"

这会将文件恢复为工作副本父版本中的文件格式,即它将再次变为未知。

答案 2 :(得分:0)

hg revert -r。^文件路径将从提交集中还原提交。 然后提交并提交(如果使用果冻鱼),您将看到从变更集中删除的文件。我不知道为什么。^还可以,但是可能有人会知道。

答案 3 :(得分:-1)

您可以随时重新克隆您的存储库,然后替换(删除现有的,然后复制新的)工作文件夹中的.hg目录与新克隆中的。...(假设您没有待处理的提交.. )