Git
简体中文 ▾ Topics ▾ Latest version ▾ git-check-ignore last updated in 2.43.0

名称

git-check-ignore - 调试 gitignore / 排除文件

概述

git check-ignore [<选项>] <路径名>…​
git check-ignore [<选项>] --stdin

描述

对于通过命令行或通过 --stdin 从文件中给出的每个路径名,检查该文件是否被 .gitignore(或排除机制的其他输入文件)排除,如果被排除,则输出路径。

默认情况下,不显示跟踪文件,因为它们不受排除规则的限制;但请参阅 --no-index

选项

-q, --quiet

不输出任何内容,只设置退出状态。 这只对单个路径名有效。

-v, --verbose

对于与排除模式匹配的路径,不是打印被排除的路径,而是将排除模式与路径一起打印出来。 (与排除模式匹配通常意味着路径已被排除,但如果模式以 "!" 开头,则是一个否定模式,与之匹配意味着路径未被排除)。

关于排除源内部和排除源之间的优先级规则,请参见 gitignore[5]

--stdin

从标准输入中读取路径名,每行一个,而不是从命令行读取。

-z

输出格式被修改为机器可解析格式(见下文)。 如果同时给出 --stdin,输入路径将以 NUL 字符分隔,而不是换行符。

-n, --non-matching

显示不匹配任何模式的给定路径。 这只有在启用 --verbose 时才有意义,否则就无法区分与模式匹配的路径和不匹配的路径。

--no-index

进行检查时不要查看索引。这可以用来调试为什么某个路径会被 git add . 追踪,而不是像用户期望的那样被规则忽略,或者在开发包括否定在内的模式以匹配之前用 git add -f 添加的路径时使用。

输出

默认情况下,将输出与忽略模式匹配的任何给定路径名,每行一个。 如果没有模式匹配给定路径,则不会输出该路径的任何内容;这意味着该路径不会被忽略。

如果指定了 --verbose,输出将是一系列格式的行:

<source> <COLON> <linenum> <COLON> <模式> <HT> <路径名>

<路径名> 是被查询文件的路径,<模式> 是匹配模式,<source> 是模式的源文件,<linenum> 是源文件中模式的行号。 如果模式包含 "!" 前缀或 "/" 后缀,输出中将保留该前缀或后缀。 <source> 在指向 core.excludesFile 配置的文件时是绝对路径,在指向 .git/info/exclude 或每个目录的排除文件时是相对于仓库根目录的路径。

如果指定了 -z,输出中的路径名将以空字符分隔;如果还指定了 --verbose,则空字符也将取代冒号和硬制表符:

<source> <NULL> <linenum> <NULL> <模式> <NULL> <路径名> <NULL>

如果指定了 -n--non-matching,则也会输出不匹配的路径名,在这种情况下,每条输出记录中除 < 路径名> 之外的所有字段都将为空。 这在非交互式运行时非常有用,可以将文件以增量方式流式传输到长期运行的忽略检查进程的 STDIN,而对于每个文件,STDOUT 都会显示该文件是否与模式匹配。 (如果没有这个选项,就无法判断某个文件没有输出是意味着它不匹配任何模式,还是意味着输出尚未生成。)

缓冲发生在 git[1] 中的 GIT_FLUSH 选项下的记录。 调用者负责避免因过度填充输入缓冲区或从空的输出缓冲区读取而造成的死锁。

退出状态码

0

一个或多个提供的路径被忽略。

1

所提供的路径都不会被忽略。

128

遇到致命错误。

GIT

属于 git[1] 文档

scroll-to-top