Typo in the .gitignore docs?
- Date: Sat, 30 Mar 2019 20:35:13 +0100
- From: "Dr. Adam Nielsen" <info@xxxxxxxxxxxx>
- Subject: Typo in the .gitignore docs?
I think there is a typo in the gitignore docs.
Its stated on https://git-scm.com/docs/gitignore that
>If the pattern does not contain a slash /, Git treats it as a shell
>glob pattern and checks for a match against the pathname relative to
>the location of the .gitignore file (relative to the toplevel of the
>work tree if not from a .gitignore file).
I think that maybe two things are not 100% correct. First I think it
should be "If the pattern does contain" instead of "does not contain".
Secondly, I think it should be mentioned that this is only true for
slashes that are not a trailing slash.
You find discussions about this at
https://github.com/git/git-scm.com/issues/1332 and at
Here is my proposal for an alternative, maybe more clear version:
>Whenever you have a string that contains a non-trailing slash "/" , its always considered from
>the root. There is no difference between foo/bar and /foo/bar. The pattern foo/ is not
>considered from the root, because it has no non-trailing slash "/".
>One may match a path that does not start at the root by using "**" (see below).
Also since we are on it, I would suggest to reduce
>If the pattern ends with a slash, it is removed for the purpose of the following description, but it
>would only find a match with a directory. In other words, foo/ will match a directory foo and
>paths underneath it, but will not match a regular file or a symbolic link foo (this is consistent
>with the way how pathspec works in general in Git).
>If the pattern ends with a slash, it would only find a match with a directory. In other words, foo/
>will match a directory foo and paths underneath it, but will not match a regular file or a
>symbolic link foo.
What do you think?