29

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

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

4

4 回答 4

29

前言

您必须始终提出包含尽可能多信息的问题。因为现在你的问题,根据某些情况,可能有完全不同的答案。

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

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

案例一 - 本地编辑,您想要保存并偶尔添加文件

  1. 阅读 Mercurial 中的文件集。
  2. hg forget命令中使用文件集,例如hg forget "set:added()".
于 2013-03-27T20:54:01.493 回答
28

在文件上使用hg reverthg forget(两者都对您运行的文件执行相同的操作hg add)。为避免输入文件名,您可以使用如下文件集

$ hg revert "set:added()"

这会将文件恢复到它在工作副本父修订版中的样子,即它将再次变得未知。

于 2013-03-28T08:39:44.590 回答
0

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

于 2019-04-26T20:41:52.613 回答
-1

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

于 2013-03-27T20:21:51.377 回答