我有.hgignore
文件的mercurial repo。我想删除此repo中与hg remove
中列出的模式匹配的磁盘(.hgignore
)中的所有文件。
我可以使用hg status -i
列出所有被忽略的文件,但我不知道如何删除它们。
.hgignore内容:
syntax: glob
build
\.egg*
*.pyc
.DS_Store
*.sublime-*
答案 0 :(得分:34)
您只能对跟踪的文件运行hg remove
。要删除与.hgignore
模式匹配的跟踪文件,请运行此命令
$ hg forget "set:hgignore() and not ignored()"
这使用fileset来选择正确的文件。
如果要删除已由Mercurial(未跟踪)忽略的文件,请参阅purge extension。这可用于清理工作副本,使其看起来像一个新的结账。
答案 1 :(得分:2)
更好的例子可能是:
purge = !$HG status --no-status --unknown -0 | xargs -0 rm
其中 将使hg purge删除存储库中的所有未知文件 与清除扩展名相同。
为了删除被忽略的文件而不是未知文件(“hg help status”),请使用--ignored
| -i
选项代替--unknown