English ▾ 主题 ▾ 最新版本 ▾ git-check-ignore 上次更新于 2.43.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> <冒号> <linenum> <冒号> <pattern> <HT> <pathname>

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

如果指定了 -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] 套件的一部分

scroll-to-top