假设我在Mercurial中键入hg add
,并且我的工作目录中有一堆未被跟踪的文件未被忽略。在没有明确键入每个文件的名称的情况下,取消添加所有这些文件的最简单方法是什么?
我可以使用一个命令将它们全部取消添加吗?
答案 0 :(得分:26)
<强>前言强>
您必须始终提出问题,其中包含尽可能多的信息。因为现在你的问题,取决于某些条件,可能有完全不同的答案。
案例一 - 在已经版本化的文件中没有本地修改,只添加(而不是已提交)文件
hg revert
会将您的工作目录返回到上次提交后的状态,撤消所有更改。
案例一 - 您要保存并偶尔添加文件的本地修改
hg forget
命令中使用文件集,例如hg forget "set:added()"
。答案 1 :(得分:25)
对文件使用hg revert
或hg forget
(对于您运行的文件hg add
,都执行相同操作)。为避免输入文件名,您可以使用fileset,如下所示:
$ hg revert "set:added()"
这会将文件恢复为工作副本父版本中的文件格式,即它将再次变为未知。
答案 2 :(得分:0)
hg revert -r。^文件路径将从提交集中还原提交。 然后提交并提交(如果使用果冻鱼),您将看到从变更集中删除的文件。我不知道为什么。^还可以,但是可能有人会知道。
答案 3 :(得分:-1)
您可以随时重新克隆您的存储库,然后替换(删除现有的,然后复制新的)工作文件夹中的.hg目录与新克隆中的。...(假设您没有待处理的提交.. )