|  | '\" t | 
|  | .\"     Title: git-check-ignore | 
|  | .\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] | 
|  | .\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> | 
|  | .\"      Date: 2025-10-14 | 
|  | .\"    Manual: Git Manual | 
|  | .\"    Source: Git 2.51.0.573.gb660e2dcb9 | 
|  | .\"  Language: English | 
|  | .\" | 
|  | .TH "GIT\-CHECK\-IGNORE" "1" "2025-10-14" "Git 2\&.51\&.0\&.573\&.gb660e2" "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 | 
|  | .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 \(lq\-\-no\-index\(rq\&. | 
|  | .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 | 
|  | Instead of printing the paths that are excluded, for each path that matches an exclude pattern, print the exclude pattern together with the path\&. (Matching an exclude pattern usually means the path is excluded, but if the pattern begins with "!" then it is a negated pattern and matching it means the path is NOT excluded\&.) | 
|  | .sp | 
|  | 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\-parsable (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\fR | 
|  | \fBadd\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\fR | 
|  | \fBadd\fR | 
|  | \fB\-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 "!" 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 \&.\fBgit/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 |