CODEOWNERS 语法:/foobar/** vs /foobar/
CODEOWNERS syntax: /foobar/** vs /foobar/
假设我想在代码所有者 GitHub 上托管的 git 存储库中的某个目录(例如 foobar
)上强制执行。在 CODEOWNERS
文件中我可以指定:
/foobar/** @someuser
但这也是可能的:
/foobar/ @someuser
这两种方式有什么区别吗?是不是一模一样?
遗憾的是,documentation 没有包含任何关于此的描述。
与完整路径名匹配的模式中的两个连续星号 (**
) 可能具有特殊含义:
前导 **
后跟斜杠表示匹配所有目录。例如,**/foo
匹配任何地方的文件或目录 foo
,与模式 foo
相同。 **/foo/bar
匹配直接位于目录 foo
.
下的任何位置的文件或目录 bar
结尾的 /**
匹配里面的所有内容。例如,abc/**
匹配目录 abc
内的所有文件,相对于 .gitignore
文件的位置,具有无限深度。
一个斜杠后跟两个连续的星号,然后一个斜杠匹配零个或多个目录。例如,a/**/b
匹配 a/b
、a/x/b
、a/x/y/b
等。
其他连续的星号被认为是常规星号,将按照前面的规则进行匹配。
在此处阅读更多内容:https://git-scm.com/docs/gitignore#_pattern_format
据我所知,您描述的两种模式都是一样的。由于 CODEOWNERS
文件的工作方式(几乎)与 .gitignore
相同,因此忽略文件夹将忽略其所有子文件夹。所以/foobar/**
和/foobar/
应该是一样的。
假设我想在代码所有者 GitHub 上托管的 git 存储库中的某个目录(例如 foobar
)上强制执行。在 CODEOWNERS
文件中我可以指定:
/foobar/** @someuser
但这也是可能的:
/foobar/ @someuser
这两种方式有什么区别吗?是不是一模一样?
遗憾的是,documentation 没有包含任何关于此的描述。
与完整路径名匹配的模式中的两个连续星号 (**
) 可能具有特殊含义:
前导
下的任何位置的文件或目录**
后跟斜杠表示匹配所有目录。例如,**/foo
匹配任何地方的文件或目录foo
,与模式foo
相同。**/foo/bar
匹配直接位于目录foo
.bar
结尾的
/**
匹配里面的所有内容。例如,abc/**
匹配目录abc
内的所有文件,相对于.gitignore
文件的位置,具有无限深度。一个斜杠后跟两个连续的星号,然后一个斜杠匹配零个或多个目录。例如,
a/**/b
匹配a/b
、a/x/b
、a/x/y/b
等。其他连续的星号被认为是常规星号,将按照前面的规则进行匹配。
在此处阅读更多内容:https://git-scm.com/docs/gitignore#_pattern_format
据我所知,您描述的两种模式都是一样的。由于 CODEOWNERS
文件的工作方式(几乎)与 .gitignore
相同,因此忽略文件夹将忽略其所有子文件夹。所以/foobar/**
和/foobar/
应该是一样的。