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