CODEOWNERS中Glob匹配范围小于预期:原因与合理性求证
关于GitHub CODEOWNERS中
a/b/*模式匹配范围的疑问 我的测试仓库包含以下文件:
/a/test.txt /a/b/test.txt /a/b/c/test.txt /a/b/c/d/test.txt
两种配置的不同结果
- 当CODEOWNERS仅配置
a/b/c @me时,我会成为/a/b/c/test.txt和/a/b/c/d/test.txt的代码所有者,这符合预期——因为这两个文件都在c/目录下。 - 但如果配置
a/b/* @me,我仅会成为/a/b/test.txt的代码所有者,该规则完全不匹配c/目录下的任何内容,尽管从Glob规则的直觉来看c/应该被包含在内。
核心疑问
这种行为是有意设计还是Bug?
GitHub官方说明CODEOWNERS的模式基本遵循.gitignore的规则,而在.gitignore中使用a/b/*时,Git确实会忽略c/目录下的内容。但为什么会有这种设计?是否有相关文档解释背后的逻辑?
补充:GitHub文档中的示例
GitHub官方文档里提到过该行为,但未解释原因:
Thedocs/*pattern will match files likedocs/getting-started.mdbut not further nested files likedocs/build-app/troubleshooting.md.docs/* docs@example.com
为什么docs/*不包含docs/build-app/下的内容?
内容的提问来源于stack exchange,提问作者Ryan Tarpine
相关产品推荐
相关产品推荐

