X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=Documentation%2Fgitignore.txt;h=e847b3ba63f3fae3d5497d6ede1ea0ee416a74de;hb=923d44aeb7cb6d21eeb459fdc1b58137e37c2b1c;hp=ea79d74b8896a9f6d9681b37a5d3ca373d5bc6cf;hpb=f8db7884286232274c8e7c7d82a35a2478b097d3;p=git.git diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt index ea79d74b8..e847b3ba6 100644 --- a/Documentation/gitignore.txt +++ b/Documentation/gitignore.txt @@ -18,26 +18,31 @@ pattern. When deciding whether to ignore a path, git normally checks `gitignore` patterns from multiple sources, with the following -order of precedence: +order of precedence, from highest to lowest (within one level of +precedence, the last matching pattern decides the outcome): - * Patterns read from the file specified by the configuration - variable 'core.excludesfile'. - - * Patterns read from `$GIT_DIR/info/exclude`. + * Patterns read from the command line for those commands that support + them. * Patterns read from a `.gitignore` file in the same directory - as the path, or in any parent directory, ordered from the - deepest such file to a file in the root of the repository. + as the path, or in any parent directory, with patterns in the + higher level files (up to the root) being overridden by those in + lower level files down to the directory containing the file. These patterns match relative to the location of the `.gitignore` file. A project normally includes such `.gitignore` files in its repository, containing patterns for files generated as part of the project build. + * Patterns read from `$GIT_DIR/info/exclude`. + + * Patterns read from the file specified by the configuration + variable 'core.excludesfile'. + The underlying git plumbing tools, such as -gitlink:git-ls-files[1] and gitlink:git-read-tree[1], read +linkgit:git-ls-files[1] and linkgit:git-read-tree[1], read `gitignore` patterns specified by command-line options, or from files specified by command-line options. Higher-level git -tools, such as gitlink:git-status[1] and gitlink:git-add[1], +tools, such as linkgit:git-status[1] and linkgit:git-add[1], use patterns from the sources specified above. Patterns have the following format: @@ -49,7 +54,15 @@ Patterns have the following format: - An optional prefix '!' which negates the pattern; any matching file excluded by a previous pattern will become - included again. + included again. If a negated pattern matches, this will + override lower precedence patterns sources. + + - 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 does not contain a slash '/', git treats it as a shell glob pattern and checks for a match against the @@ -113,4 +126,4 @@ Frank Lichtenheld, and the git-list . GIT --- -Part of the gitlink:git[7] suite +Part of the linkgit:git[7] suite