微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CODEOWNERS 语法:/foobar/** vs /foobar/

如何解决CODEOWNERS 语法:/foobar/** vs /foobar/

假设我想对托管在 GitHub 上的 git 存储库中的某个目录(例如 foobar)强制执行代码所有者。在 CODEOWNERS 文件中,我可以指定:

/foobar/** @someuser

但这也是可能的:

/foobar/ @someuser

这两种方式有什么区别吗?完全一样吗?

遗憾的是,documentation 没有包含任何关于此的描述。

解决方法

与完整路径名匹配的模式中的两个连续星号 (**) 可能具有特殊含义:

  • 前导 ** 后跟斜杠表示在所有目录中匹配。例如,**/foo 匹配文件或目录 foo 的任何位置,与模式 foo 相同。 **/foo/bar 匹配直接位于目录 bar 下的任何位置的文件或目录 foo

  • 尾随的 /** 匹配里面的所有内容。例如,abc/** 匹配目录 abc 内的所有文件,相对于 .gitignore 文件的位置,具有无限深度。

  • 斜杠后跟两个连续的星号,然后斜杠匹配零个或多个目录。例如,a/**/b 匹配 a/ba/x/ba/x/y/b 等。

  • 其他连续的星号被视为常规星号,将根据之前的规则进行匹配。

在此处阅读更多信息:https://git-scm.com/docs/gitignore#_pattern_format

据我所知,你描述的两种模式都是一样的。由于 CODEOWNERS 的工作方式(几乎)与 .gitignore 相同,因此忽略文件夹将忽略其所有子文件夹。所以 /foobar/**/foobar/ 应该是一样的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。