我刚跑:
hg add .*
匹配所有../something
文件,这是我当然不想要的!撤消此命令的最简单方法是什么?
不完全是我所追求的,但让我的生活更轻松:
hg forget "set:added()"
这将取消标记工作存储库中添加的所有文件。显然,我还取消了前面命令中添加的所有文件的标记,所以正如我所说,这不完全是我所追求的......
如果您有很多不想重新提交的未提交添加,您可以使用一个 mercurial 文件集,该文件集仅在父目录的子目录中挑选出待处理的添加(在错误的同一目录中使用它)命令已发出):
hg forget "set:../** and added()"
Mercurial 不记得您用来引用文件的路径,因此这将忘记刚刚添加的所有文件(在父目录下);但是如果您深入一个大型存储库,它将限制您丢弃的内容的范围。
您的问题与最近的问题类似,但在这里我们对错误添加的文件名有一个额外的条件。
没有内置方法可以撤消hg add
命令。
潜在的问题是hg add
操纵所谓的“dirstate”(“工作目录状态”的缩写。这是存储未决更改(例如计划提交的文件)的位置——并且该存储是未版本化的。
不过,有一个扩展可以帮助您:hg-multiundo将备份 Mercurial 触及的所有文件,包括 dirstate。这意味着您可以使用它来撤消类似hg add
或什至hg revert --no-backup
.