git-check-ignore(1) =================== NAME ---- git-check-ignore - Debug gitignore / exclude files SYNOPSIS -------- [verse] 'git check-ignore' [options] pathname... 'git check-ignore' [options] --stdin < 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. 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: is the path of a file being queried, is the matching pattern, is the pattern's source file, and 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. 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: 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 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