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