简体中文 ▾ 主题 ▾ 最新版本 ▾ git-check-ignore 最后更新于 2.52.0

名称

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

概要

git check-ignore [<options>] <pathname>…​
git check-ignore [<options>] --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> <pattern> <HT> <pathname>

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

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

<source> <NULL> <linenum> <NULL> <pattern> <NULL> <pathname> <NULL>

如果指定了 -n--non-matching,则也会输出不匹配的路径名,在这种情况下,每个输出记录中的所有字段(<pathname> 除外)都将为空。这在非交互式运行时非常有用,这样文件可以增量地流式传输到长时间运行的 check-ignore 进程的 STDIN,并且对于这些文件中的每一个,STDOUT 都将指示该文件是否匹配某个模式。 (没有此选项,将无法区分给定文件的输出缺失是因为它不匹配任何模式,还是因为输出尚未生成。)

缓冲发生在 git[1]GIT_FLUSH 选项下记录的文档中。调用者负责避免因输入缓冲区溢出或从空输出缓冲区读取而导致的死锁。

退出状态

0

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

1

提供的所有路径均未被忽略。

128

遇到了致命错误。

GIT

Git[1] 套件的一部分