| 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 |