排查忽略原因的命令
这是排查「为什么这个文件被忽略了」的专用命令:加上 -v 会显示命中的规则、来源文件与行号,加 --no-index 还能检查尚未被跟踪的路径。它比逐条翻阅忽略清单快得多,也是排查「文件加不进仓库」的首选手段。
基本信息
| 作用 | 检查某个路径是否被忽略,以及命中的是哪一条规则 |
|---|---|
| 语法 | git check-ignore [-v] <路径> |
| 输出字段 | 来源文件与行号、命中的规则、被判断的路径 |
| 退出码 | 命中返回 0,未命中返回 1,便于脚本判断 |
| 扩展用法 | --no-index 检查尚未被跟踪的路径 |
典型使用场景
- 新同事反馈文件加不进仓库,先定位原因
- 确认新增的忽略规则是否真的生效
- 排查多份忽略清单之间究竟哪一条在起作用
- 脚本里判断某个路径是否需要处理
- 解释「同一个文件在不同机器上行为不同」的现象
常用示例
常用示例
git check-ignore -v build/app.log # 显示命中的规则与来源文件行号
git check-ignore -v .env # 检查敏感文件是否被正确忽略
git check-ignore --no-index some-dir # 检查尚未被跟踪的路径
git check-ignore -v a.txt b.txt # 一次检查多个路径
if git check-ignore -q secret.key; then echo 已忽略; fi # 脚本中的用法输出逐列读法
| 列 | 含义 |
|---|---|
| 来源文件 | 规则来自仓库忽略清单、本地排除文件还是全局清单 |
| 行号 | 该规则在来源文件中的位置,便于直接修改 |
| 规则内容 | 实际命中的模式,含取反写法 |
| 路径 | 被判断的那个文件或目录 |
已跟踪的文件不会命中忽略规则:对这类文件该命令没有输出,并不代表规则写错了,先确认它是否已经纳入版本控制。
取反规则会覆盖前置规则,命中的未必是忽略清单里最先出现的那一条,用来源文件与行号确认真正的生效规则。