Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge branch 'jc/exclusion-doc'
* jc/exclusion-doc:
  gitignore: document that unignoring a directory unignores everything in it
  • Loading branch information
Junio C Hamano committed Mar 10, 2016
2 parents 68846a9 + 6f6d1f4 commit e80aae5
Showing 1 changed file with 37 additions and 1 deletion.
38 changes: 37 additions & 1 deletion Documentation/gitignore.txt
Expand Up @@ -148,7 +148,43 @@ excluded, the following conditions must be met:
be in the same .gitignore file.

- The directory part in the re-include rules must be literal (i.e. no
wildcards)
wildcards and has to start with a `/`).

A re-inclusion of a directory makes all files in the directory
unignored. For example, suppose you have files `.gitignore`,
`dir/file1`, `dir/file2`, and `dir/file3`, and have the following in
your `.gitignore`:

----------------
# .gitignore is not mentioned in .gitignore
*
!/dir
# dir/file1 is not mentioned in .gitignore
dir/file2
!dir/file3
----------------

Then:

- `.gitignore` gets ignored, because it matches the `*` at the top
level;

- `dir/file1` does not get ignored, because `/dir` marks everything
underneath `dir/` directory to be 're-included' unless otherwise
specified;

- `dir/file2` gets ignored, because `dir/file2` matches it.

- `dir/file3` does not get ignored, because `!dir/file3` matches it.
Note that the entry `!dir/file3` is redundant because everything
underneath `dir/` is marked to be 're-included' already.

Some earlier versions of Git treated `!/dir` above differently in
that it did not cause the paths under it unignored (but merely told
Git that patterns that begin with dir/ should not be ignored), but
this has been corrected to be consistent with `/dir` that says "the
directory `dir/` and everything below are ignored."


EXAMPLES
--------
Expand Down

0 comments on commit e80aae5

Please sign in to comment.