]> git.ipfire.org Git - thirdparty/git.git/commitdiff
gitignore: document that unignoring a directory unignores everything in it
authorJunio C Hamano <gitster@pobox.com>
Mon, 7 Mar 2016 23:27:27 +0000 (15:27 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 8 Mar 2016 18:10:49 +0000 (10:10 -0800)
Also document another limitation coming from a bug in handling the
basename match with a directory for 're-inclusion'.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/gitignore.txt

index 3ded6fdc9972bb72a0efea73f0a2c73ae3e9906d..91d1ce2a89e6a180b934ab8836c41affdb2751ce 100644 (file)
@@ -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
 --------