hg 删除 .hgignore 中列出的所有文件

Posted

技术标签:

【中文标题】hg 删除 .hgignore 中列出的所有文件【英文标题】:hg remove all files listed in .hgignore 【发布时间】:2013-11-18 03:48:30 【问题描述】:

我有一个带有.hgignore 文件的善变回购。我想从这个 repo 中的磁盘 (hg remove) 中删除与.hgignore 中列出的模式匹配的所有文件。

我可以使用hg status -i 列出所有被忽略的文件,但我不知道如何删除它们。

.hgignore 内容:

syntax: glob

build
\.egg*
*.pyc

.DS_Store
*.sublime-*

【问题讨论】:

【参考方案1】:

您只能对被跟踪的文件运行hg remove。要删除与.hgignore 模式匹配的跟踪文件,请运行此命令

$ hg forget "set:hgignore() and not ignored()"

这使用fileset 来选择正确的文件。

如果您要删除已被 Mercurial 忽略(未跟踪)的文件,请参阅 purge extension。这可用于清理工作副本,使其看起来像新的结帐。

【讨论】:

【参考方案2】:

来自hgrc help

一个更好的例子可能是:

purge = !$HG status --no-status --unknown -0 | xargs -0 rm

哪个 将使 hg purge 删除存储库中的所有未知文件 与清除扩展相同。

为了删除被忽略的文件而不是未知文件(“hg help status”),请使用--ignored | -i 选项而不是 --unknown

【讨论】:

以上是关于hg 删除 .hgignore 中列出的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

用于跳过文件以忽略 Mercurial 文件的 Google App Engine App.yaml 配置

使用hgimportsvn将SVN转换为Hg

想在 TortoiseHG/Mercurial 中为我的 .hgignore 文件创建一些默认值

解压缩包后的文件可以删吗

sh 列出所有Deezer播放列表,将它们放入文件供您编辑,删除该文件中列出的所有播放列表

linux批量删除进程