| '\" t |
| .\" Title: git-check-ignore |
| .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] |
| .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> |
| .\" Date: 02/19/2019 |
| .\" Manual: Git Manual |
| .\" Source: Git 2.21.0.rc2 |
| .\" Language: English |
| .\" |
| .TH "GIT\-CHECK\-IGNORE" "1" "02/19/2019" "Git 2\&.21\&.0\&.rc2" "Git Manual" |
| .\" ----------------------------------------------------------------- |
| .\" * Define some portability stuff |
| .\" ----------------------------------------------------------------- |
| .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| .\" http://bugs.debian.org/507673 |
| .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html |
| .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| .ie \n(.g .ds Aq \(aq |
| .el .ds Aq ' |
| .\" ----------------------------------------------------------------- |
| .\" * set default formatting |
| .\" ----------------------------------------------------------------- |
| .\" disable hyphenation |
| .nh |
| .\" disable justification (adjust text to left margin only) |
| .ad l |
| .\" ----------------------------------------------------------------- |
| .\" * MAIN CONTENT STARTS HERE * |
| .\" ----------------------------------------------------------------- |
| .SH "NAME" |
| git-check-ignore \- Debug gitignore / exclude files |
| .SH "SYNOPSIS" |
| .sp |
| .nf |
| \fIgit check\-ignore\fR [<options>] <pathname>\&... |
| \fIgit check\-ignore\fR [<options>] \-\-stdin |
| .fi |
| .sp |
| .SH "DESCRIPTION" |
| .sp |
| For each pathname given via the command\-line or from a file via \fB\-\-stdin\fR, check whether the file is excluded by \&.gitignore (or other input files to the exclude mechanism) and output the path if it is excluded\&. |
| .sp |
| By default, tracked files are not shown at all since they are not subject to exclude rules; but see \(oq\-\-no\-index\(cq\&. |
| .SH "OPTIONS" |
| .PP |
| \-q, \-\-quiet |
| .RS 4 |
| Don\(cqt output anything, just set exit status\&. This is only valid with a single pathname\&. |
| .RE |
| .PP |
| \-v, \-\-verbose |
| .RS 4 |
| Also output details about the matching pattern (if any) for each given pathname\&. For precedence rules within and between exclude sources, see |
| \fBgitignore\fR(5)\&. |
| .RE |
| .PP |
| \-\-stdin |
| .RS 4 |
| Read pathnames from the standard input, one per line, instead of from the command\-line\&. |
| .RE |
| .PP |
| \-z |
| .RS 4 |
| The output format is modified to be machine\-parseable (see below)\&. If |
| \fB\-\-stdin\fR |
| is also given, input paths are separated with a NUL character instead of a linefeed character\&. |
| .RE |
| .PP |
| \-n, \-\-non\-matching |
| .RS 4 |
| Show given paths which don\(cqt match any pattern\&. This only makes sense when |
| \fB\-\-verbose\fR |
| is enabled, otherwise it would not be possible to distinguish between paths which match a pattern and those which don\(cqt\&. |
| .RE |
| .PP |
| \-\-no\-index |
| .RS 4 |
| Don\(cqt look in the index when undertaking the checks\&. This can be used to debug why a path became tracked by e\&.g\&. |
| \fBgit add \&.\fR |
| 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 |
| \fBgit add \-f\fR\&. |
| .RE |
| .SH "OUTPUT" |
| .sp |
| 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\&. |
| .sp |
| If \fB\-\-verbose\fR is specified, the output is a series of lines of the form: |
| .sp |
| <source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname> |
| .sp |
| <pathname> is the path of a file being queried, <pattern> is the matching pattern, <source> is the pattern\(cqs source file, and <linenum> is the line number of the pattern within that source\&. If the pattern contained a \fB!\fR prefix or \fB/\fR suffix, it will be preserved in the output\&. <source> will be an absolute path when referring to the file configured by \fBcore\&.excludesFile\fR, or relative to the repository root when referring to \fB\&.git/info/exclude\fR or a per\-directory exclude file\&. |
| .sp |
| If \fB\-z\fR is specified, the pathnames in the output are delimited by the null character; if \fB\-\-verbose\fR is also specified then null characters are also used instead of colons and hard tabs: |
| .sp |
| <source> <NULL> <linenum> <NULL> <pattern> <NULL> <pathname> <NULL> |
| .sp |
| If \fB\-n\fR or \fB\-\-non\-matching\fR 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\(cqt match any pattern, or that the output hadn\(cqt been generated yet\&.) |
| .sp |
| Buffering happens as documented under the \fBGIT_FLUSH\fR option in \fBgit\fR(1)\&. The caller is responsible for avoiding deadlocks caused by overfilling an input buffer or reading from an empty output buffer\&. |
| .SH "EXIT STATUS" |
| .PP |
| 0 |
| .RS 4 |
| One or more of the provided paths is ignored\&. |
| .RE |
| .PP |
| 1 |
| .RS 4 |
| None of the provided paths are ignored\&. |
| .RE |
| .PP |
| 128 |
| .RS 4 |
| A fatal error was encountered\&. |
| .RE |
| .SH "SEE ALSO" |
| .sp |
| \fBgitignore\fR(5) \fBgit-config\fR(1) \fBgit-ls-files\fR(1) |
| .SH "GIT" |
| .sp |
| Part of the \fBgit\fR(1) suite |