summaryrefslogtreecommitdiff
path: root/Documentation/git-check-ignore.txt
blob: 788a0115805214f4169c50279d94cd31e5f0becc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
git-check-ignore(1)
===================
 
NAME
----
git-check-ignore - Debug gitignore / exclude files
 
 
SYNOPSIS
--------
[verse]
'git check-ignore' [options] pathname...
'git check-ignore' [options] --stdin < <list-of-paths>
 
DESCRIPTION
-----------
 
For each pathname given via the command-line or from a file via
`--stdin`, show the pattern from .gitignore (or other input files to
the exclude mechanism) that decides if the pathname is excluded or
included.  Later patterns within a file take precedence over earlier
ones.
 
By default, tracked files are not shown at all since they are not
subject to exclude rules; but see `--no-index'.
 
OPTIONS
-------
-q, --quiet::
	Don't output anything, just set exit status.  This is only
	valid with a single pathname.
 
-v, --verbose::
	Also output details about the matching pattern (if any)
	for each given pathname.
 
--stdin::
	Read file names from stdin instead of from the command-line.
 
-z::
	The output format is modified to be machine-parseable (see
	below).  If `--stdin` is also given, input paths are separated
	with a NUL character instead of a linefeed character.
 
-n, --non-matching::
	Show given paths which don't match any pattern.	 This only
	makes sense when `--verbose` is enabled, otherwise it would
	not be possible to distinguish between paths which match a
	pattern and those which don't.
 
--no-index::
	Don't look in the index when undertaking the checks. This can
	be used to debug why a path became tracked by e.g. `git add .`
	and was not ignored by the rules as expected by the user or when
	developing patterns including negation to match a path previously
	added with `git add -f`.
 
OUTPUT
------
 
By default, any of the given pathnames which match an ignore pattern
will be output, one per line.  If no pattern matches a given path,
nothing will be output for that path; this means that path will not be
ignored.
 
If `--verbose` is specified, the output is a series of lines of the form:
 
<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>
 
<pathname> is the path of a file being queried, <pattern> is the
matching pattern, <source> is the pattern's source file, and <linenum>
is the line number of the pattern within that source.  If the pattern
contained a `!` prefix or `/` suffix, it will be preserved in the
output.  <source> will be an absolute path when referring to the file
configured by `core.excludesfile`, or relative to the repository root
when referring to `.git/info/exclude` or a per-directory exclude file.
 
If `-z` is specified, the pathnames in the output are delimited by the
null character; if `--verbose` is also specified then null characters
are also used instead of colons and hard tabs:
 
<source> <NULL> <linenum> <NULL> <pattern> <NULL> <pathname> <NULL>
 
If `-n` or `--non-matching` are specified, non-matching pathnames will
also be output, in which case all fields in each output record except
for <pathname> will be empty.  This can be useful when running
non-interactively, so that files can be incrementally streamed to
STDIN of a long-running check-ignore process, and for each of these
files, STDOUT will indicate whether that file matched a pattern or
not.  (Without this option, it would be impossible to tell whether the
absence of output for a given file meant that it didn't match any
pattern, or that the output hadn't been generated yet.)
 
Buffering happens as documented under the `GIT_FLUSH` option in
linkgit:git[1].  The caller is responsible for avoiding deadlocks
caused by overfilling an input buffer or reading from an empty output
buffer.
 
EXIT STATUS
-----------
 
0::
	One or more of the provided paths is ignored.
 
1::
	None of the provided paths are ignored.
 
128::
	A fatal error was encountered.
 
SEE ALSO
--------
linkgit:gitignore[5]
linkgit:gitconfig[5]
linkgit:git-ls-files[1]
 
GIT
---
Part of the linkgit:git[1] suite