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

Posted

技术标签:

【中文标题】如何撤消 Mercurial 中所有添加的文件【英文标题】:How to undo all added files in Mercurial 【发布时间】:2013-03-18 02:29:33 【问题描述】:

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

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

【问题讨论】:

重复***.com/questions/6183374/… 【参考方案1】:

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

【讨论】:

这在理论上似乎可行,但可能容易出错。我想如果你有大量的本地更改不想在新的克隆中手动复制,这可能是最好的选择。无论如何,创意解决方案!【参考方案2】:

前言

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

案例一 - 没有对已版本化文件进行本地修改,只添加(而不是提交)文件

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

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

    了解 Mercurial 中的文件集。 在hg forget 命令中使用文件集,例如hg forget "set:added()"

【讨论】:

【参考方案3】:

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

$ hg revert "set:added()"

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

【讨论】:

嗨,马丁。大概这比 hg revert -a 更精致,这也会恢复对现有文件的更改,对吗? @FaheemMitha 是的,没错。【参考方案4】:

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

【讨论】:

您好。您的帖子更像是评论。请添加更多详细信息或将其删除。

以上是关于如何撤消 Mercurial 中所有添加的文件的主要内容,如果未能解决你的问题,请参考以下文章

如何中止mercurial中的合并?

如何签出配置文件并使用mercurial重命名?

如何在提交之前撤消“git add”?

如何自动删除 Mercurial 工作树中的所有 .orig 文件?

如何使用数组添加撤消列表?

如何撤消和/或清除添加到 UIView 的 UIImageView?