我的.gitignore文件
**/target/
**/.settings/
**/.classpath
**/.project
**/.idea/
**/*.iml
**/*.log
我不知道开头的'** /'的含义
答案 0 :(得分:0)
双星号(**
)很好documented:
两个连续的星号(“
**
”)与完全匹配的模式 pathname可能有特殊含义:
前导“
**
”后跟斜杠表示所有目录都匹配。对于 例如,“**/foo
”在任何地方匹配文件或目录“foo
”,相同 作为模式“foo
”。 “**/foo/bar
”匹配文件或目录“bar
” 位于“foo
”目录下的任何地方。尾随“
/**
”匹配内部的所有内容。例如,“abc/**
” 匹配目录“abc
”内的所有文件,相对于位置.gitignore
文件,无限深度。斜线后跟两个连续的星号,然后斜线匹配 零个或多个目录。例如,“
a/**/b
”匹配“a/b
”, “a/x/b
”,“a/x/y/b
”等等。其他连续的星号被视为无效。
您的案例与第一个案例匹配,因此这一行:**/.idea/
表示:忽略存储库中任何目录中的.idea
目录。因此它会匹配/.idea/
,/foo/.idea/
,/foo/bar/.idea/
等。