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