@@ -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
153189EXAMPLES
154190--------
0 commit comments