1

我刚跑:

hg add .*

匹配所有../something文件,这是我当然不想要的!撤消此命令的最简单方法是什么?

4

3 回答 3

3

不完全是我所追求的,但让我的生活更轻松:

hg forget "set:added()"

这将取消标记工作存储库中添加的所有文件。显然,我还取消了前面命令中添加的所有文件的标记,所以正如我所说,这不完全是我所追求的......

于 2012-11-23T15:21:39.377 回答
2

如果您有很多不想重新提交的未提交添加,您可以使用一个 mercurial 文件集,该文件集仅在父目录的子目录中挑选出待处理的添加(在错误的同一目录中使用它)命令已发出):

hg forget "set:../** and added()"

Mercurial 不记得您用来引用文件的路径,因此这将忘记刚刚添加的所有文件(在父目录下);但是如果您深入一个大型存储库,它将限制您丢弃的内容的范围。

您的问题与最近的问题类似,但在这里我们对错误添加的文件名有一个额外的条件。

于 2012-11-24T22:03:49.060 回答
1

没有内置方法可以撤消hg add命令。

潜在的问题是hg add操纵所谓的“dirstate”(“工作目录状态”的缩写。这是存储未决更改(例如计划提交的文件)的位置——并且该存储是未版本化的。

不过,有一个扩展可以帮助您:hg-multiundo将备份 Mercurial 触及的所有文件,包括 dirstate。这意味着您可以使用它来撤消类似hg add或什至hg revert --no-backup.

于 2012-11-23T17:26:32.463 回答