git check-ignore
命名
git-check-ignore - 调试 gitignore /排除文件
概要
git check-ignore [options] pathname… git check-ignore [options] --stdin
描述
对于通过命令行或文件via给出的每个路径名--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
或相对于存储库根.git/info/exclude
目录指定的文件或每个目录排除文件时,<source>将是绝对路径。
如果-z
指定,则输出中的路径名由空字符分隔; 如果--verbose
也被指定,则也使用空字符而不是冒号和硬标签:
<source> <NULL> <linenum> <NULL> <pattern> <NULL> <pathname> <NULL>
如果-n
或者--non-matching
被指定,则也会输出不匹配的路径名,在这种情况下,每个输出记录中除<pathname>之外的所有字段都将为空。这在非交互式运行时非常有用,因此文件可以增量流式传输到长时间运行的检查忽略进程的STDIN,并且对于其中的每个文件,STDOUT都会指示该文件是否匹配模式。(如果没有这个选项,就不可能判断给定文件的输出缺失是否意味着它不匹配任何模式,或者输出还没有生成。)
缓冲发生GIT_FLUSH
在git [1]中的选项下。调用者负责避免溢出输入缓冲区或从空输出缓冲区读取引起的死锁。
退出状态
0
一个或多个提供的路径被忽略。
1
没有提供的路径被忽略。
128
遇到致命错误。