参考在线文档 http://git-scm.com/docs/gitignore:
如果模式不包含斜杠 /,Git 会将其视为 shell glob 模式,并检查相对于 .gitignore 文件位置的路径名是否匹配(如果不是来自 .gitignore,则相对于工作树的顶层)文件)。
对我来说,这个文档说,给定模式“foo”,任何名为“foo”的文件或目录将仅相对于 .gitignore 文件被忽略。我没有读过任何解释其递归行为的内容。外壳球体(来自我读过什么 http://man7.org/linux/man-pages/man7/glob.7.html和经验)不是递归的。
下面进一步解释双星号:
前导“**”后跟斜杠表示在所有目录中匹配。例如,“**/foo”在任何地方匹配文件或目录“foo”,与模式“foo”相同
所以是的,文档中有一个例子解释了这一点**/foo
等于foo
,但递归行为仍然是隐式的。
像“这样的规则的递归性质foo
" 源自这些规则的获取和应用方式:
模式读取自.gitignore
file 在与路径相同的目录中,或在任何父目录中,较高级别文件(直至工作树的顶层)中的模式被较低级别文件中直至包含该文件的目录中的模式覆盖。
因此,即使 .gitignore 下面有多个子目录,规则“foo
“仍适用于任何”foo
" 在所述子文件夹中找到文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)