my .gitignore file
**/target/
**/.settings/
**/.classpath
**/.project
**/.idea/
**/*.iml
**/*.log
I dont know the meaning of the '**/' at the begining
my .gitignore file
**/target/
**/.settings/
**/.classpath
**/.project
**/.idea/
**/*.iml
**/*.log
I dont know the meaning of the '**/' at the begining
The double asterisk (**) is well documented:
Two consecutive asterisks ("
**") in patterns matched against full pathname may have special meaning:
A leading "
**" followed by a slash means match in all directories. For example, "**/foo" matches file or directory "foo" anywhere, the same as pattern "foo". "**/foo/bar" matches file or directory "bar" anywhere that is directly under directory "foo".A trailing "
/**" matches everything inside. For example, "abc/**" matches all files inside directory "abc", relative to the location of the.gitignorefile, with infinite depth.A slash followed by two consecutive asterisks then a slash matches zero or more directories. For example, "
a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on.Other consecutive asterisks are considered invalid.
Your case matches the first one, so this line: **/.idea/ means: ignore .idea directory in any directory within the repository. So it would match /.idea/, /foo/.idea/, /foo/bar/.idea/ etc.