diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-02-24 13:25:59 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-02-24 13:25:59 -0800 |
commit | 5e57f9c3dfe7dd44a1b56bb5b3327d7a1356ec7c (patch) | |
tree | bb594f80a86161ed7a22edb69da6725d8bb8a262 /Documentation | |
parent | Merge branch 'ce/https-public-key-pinning' (diff) | |
parent | dir.c: don't exclude whole dir prematurely (diff) | |
download | tgif-5e57f9c3dfe7dd44a1b56bb5b3327d7a1356ec7c.tar.xz |
Merge branch 'nd/exclusion-regression-fix'
Another try to add support to the ignore mechanism that lets you
say "this is excluded" and then later say "oh, no, this part (that
is a subset of the previous part) is not excluded".
* nd/exclusion-regression-fix:
dir.c: don't exclude whole dir prematurely
dir.c: support marking some patterns already matched
dir.c: support tracing exclude
dir.c: fix match_pathname()
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/git-check-ignore.txt | 1 | ||||
-rw-r--r-- | Documentation/git.txt | 5 | ||||
-rw-r--r-- | Documentation/gitignore.txt | 17 |
3 files changed, 19 insertions, 4 deletions
diff --git a/Documentation/git-check-ignore.txt b/Documentation/git-check-ignore.txt index e94367a5ed..f60ee051f8 100644 --- a/Documentation/git-check-ignore.txt +++ b/Documentation/git-check-ignore.txt @@ -114,6 +114,7 @@ SEE ALSO linkgit:gitignore[5] linkgit:gitconfig[5] linkgit:git-ls-files[1] +GIT_TRACE_EXCLUDE in linkgit:git[1] GIT --- diff --git a/Documentation/git.txt b/Documentation/git.txt index 9dffb4c035..2754af8f77 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -1065,6 +1065,11 @@ of clones and fetches. cloning of shallow repositories. See 'GIT_TRACE' for available trace output options. +'GIT_TRACE_EXCLUDE':: + Enables trace messages that can help debugging .gitignore + processing. See 'GIT_TRACE' for available trace output + options. + 'GIT_LITERAL_PATHSPECS':: Setting this variable to `1` will cause Git to treat all pathspecs literally, rather than as glob patterns. For example, diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt index 473623d631..3ded6fdc99 100644 --- a/Documentation/gitignore.txt +++ b/Documentation/gitignore.txt @@ -82,12 +82,12 @@ PATTERN FORMAT - An optional prefix "`!`" which negates the pattern; any matching file excluded by a previous pattern will become - included again. It is not possible to re-include a file if a parent - directory of that file is excluded. Git doesn't list excluded - directories for performance reasons, so any patterns on contained - files have no effect, no matter where they are defined. + included again. Put a backslash ("`\`") in front of the first "`!`" for patterns that begin with a literal "`!`", for example, "`\!important!.txt`". + It is possible to re-include a file if a parent directory of that + file is excluded if certain conditions are met. See section NOTES + for detail. - If the pattern ends with a slash, it is removed for the purpose of the following description, but it would only find @@ -141,6 +141,15 @@ not tracked by Git remain untracked. To stop tracking a file that is currently tracked, use 'git rm --cached'. +To re-include files or directories when their parent directory is +excluded, the following conditions must be met: + + - The rules to exclude a directory and re-include a subset back must + be in the same .gitignore file. + + - The directory part in the re-include rules must be literal (i.e. no + wildcards) + EXAMPLES -------- |