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

问题描述 投票:25回答:4

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

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

mercurial add undo
4个回答
26
投票

前言

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

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

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

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

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

25
投票

在文件上使用hg reverthg forget(对于运行hg add的文件,都执行相同操作)。为了避免输入文件名,您可以像这样使用fileset

$ hg revert "set:added()"

这将使文件恢复到它在工作副本父修订版中的外观,即它将再次变为未知。


0
投票

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


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.