“/”在“.gitignore”文件中“**/.idea”开头的含义是什么?

6

我的.gitignore文件

**/target/
**/.settings/
**/.classpath
**/.project
**/.idea/
**/*.iml
**/*.log

我不知道开头的“** /”的意思。

请参见以下网址内容:https://dev59.com/HGMl5IYBdhLWcg3wDzZG - Scary Wombat
1
@ScaryWombat 这个问题是关于.gitignore语法的,不是Java。 - 1615903
1个回答

9
双星号(**)在文档中已有详细说明:

对完整路径名进行匹配的模式中,两个连续的星号("**")可能具有特殊意义:

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

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

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

  • 其他连续的星号被视为无效。

根据您的情况,这一行:**/.idea/ 表示:忽略仓库中任何目录中的.idea目录。所以它将匹配/.idea//foo/.idea//foo/bar/.idea/等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接