Skip to content

Commit e80aae5

Browse files
committed
Merge branch 'jc/exclusion-doc'
* jc/exclusion-doc: gitignore: document that unignoring a directory unignores everything in it
2 parents 68846a9 + 6f6d1f4 commit e80aae5

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

Documentation/gitignore.txt

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,43 @@ excluded, the following conditions must be met:
148148
be in the same .gitignore file.
149149

150150
- The directory part in the re-include rules must be literal (i.e. no
151-
wildcards)
151+
wildcards and has to start with a `/`).
152+
153+
A re-inclusion of a directory makes all files in the directory
154+
unignored. For example, suppose you have files `.gitignore`,
155+
`dir/file1`, `dir/file2`, and `dir/file3`, and have the following in
156+
your `.gitignore`:
157+
158+
----------------
159+
# .gitignore is not mentioned in .gitignore
160+
*
161+
!/dir
162+
# dir/file1 is not mentioned in .gitignore
163+
dir/file2
164+
!dir/file3
165+
----------------
166+
167+
Then:
168+
169+
- `.gitignore` gets ignored, because it matches the `*` at the top
170+
level;
171+
172+
- `dir/file1` does not get ignored, because `/dir` marks everything
173+
underneath `dir/` directory to be 're-included' unless otherwise
174+
specified;
175+
176+
- `dir/file2` gets ignored, because `dir/file2` matches it.
177+
178+
- `dir/file3` does not get ignored, because `!dir/file3` matches it.
179+
Note that the entry `!dir/file3` is redundant because everything
180+
underneath `dir/` is marked to be 're-included' already.
181+
182+
Some earlier versions of Git treated `!/dir` above differently in
183+
that it did not cause the paths under it unignored (but merely told
184+
Git that patterns that begin with dir/ should not be ignored), but
185+
this has been corrected to be consistent with `/dir` that says "the
186+
directory `dir/` and everything below are ignored."
187+
152188

153189
EXAMPLES
154190
--------

0 commit comments

Comments
 (0)