You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mercurial的.hgignore中glob语法以/开头的匹配规则不生效怎么办

Mercurial .hgignore glob规则相关说明

Mercurial 的 syntax: glob 模式下确实不支持以/开头的锚定规则,这是它和 Git .gitignore 规则的核心差异之一:

  • Git 中/开头的glob规则用来锚定仓库根目录,但Mercurial的默认glob语法没有该设计,所有glob模式默认对全路径的任意位置做匹配,开头额外加/反而会导致匹配逻辑异常,无法命中预期路径。
  • 如果你需要实现锚定仓库根目录的匹配效果,不要使用默认的glob语法,改用官方提供的syntax: rootglob声明即可,该模式下的规则会默认从仓库根目录开始匹配,和Git中带开头/的glob规则效果完全等价。

你可以根据自己的需求选择合适的处理方案:

  • 如果你不需要区分根目录和子目录的同名路径,当前删除所有规则开头/、保留syntax: glob的方案完全可用,适合绝大多数通用忽略场景,比如vendor/就可以匹配所有层级目录下的vendor文件夹。
  • 如果你需要保留根目录匹配的逻辑,比如只想忽略根目录的vendor/、不想忽略子目录下的app/vendor/,直接把头部的syntax: glob改成syntax: rootglob即可,原来带/开头的规则无需修改就能正常生效。

如果你的规则中同时存在两种匹配需求,也可以在.hgignore中多次切换语法声明,示例如下:

syntax: glob
# 匹配所有层级目录下的日志文件
*.log
# 匹配所有层级目录下的缓存文件夹
cache/

syntax: rootglob
# 仅匹配根目录下的依赖文件夹
/vendor/
# 仅匹配根目录下的本地配置文件
/.env

内容的提问来源于stack exchange,提问作者PhoneixS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:24:04