| 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`, check whether the file is excluded by .gitignore (or other | |
| input files to the exclude mechanism) and output the path if it is | |
| excluded. | |
| 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. For precedence rules within and | |
| between exclude sources, see linkgit:gitignore[5]. | |
| --stdin:: | |
| Read pathnames from the standard input, one per line, | |
| 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:git-config[1] | |
| linkgit:git-ls-files[1] | |
| GIT | |
| --- | |
| Part of the linkgit:git[1] suite |