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