首页/开发/Git 与协作速查/git check-ignore 排查忽略原因
Git 基础与命令88 条

git check-ignore 排查忽略原因

定位「为什么这个文件被忽略了」:-v 显示命中的规则与来源文件;--no-index 可检查未被跟踪的路径。

Git 与协作速查开发更新于 2026-10-13

排查忽略原因的命令

这是排查「为什么这个文件被忽略了」的专用命令:加上 -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   # 脚本中的用法

输出逐列读法

列含义
来源文件规则来自仓库忽略清单、本地排除文件还是全局清单
行号该规则在来源文件中的位置,便于直接修改
规则内容实际命中的模式,含取反写法
路径被判断的那个文件或目录
已跟踪的文件不会命中忽略规则:对这类文件该命令没有输出,并不代表规则写错了,先确认它是否已经纳入版本控制。
取反规则会覆盖前置规则,命中的未必是忽略清单里最先出现的那一条,用来源文件与行号确认真正的生效规则。

易错点

  • 把「没有输出」当成「规则写错」:已跟踪的文件与未被忽略的路径都不会输出,先区分这两种情况再排查
  • 忽略规则对已跟踪文件无效,需要先把它移出索引,忽略才会生效
  • 目录被忽略时其内部文件同样不会出现在输出里,排查应从目录层级往上找
  • 多份忽略清单同时存在时只看其中一份,结论会与实际行为不符,务必看命令给出的来源文件

数据来源与参考

  • Git 官方文档:git-check-ignore
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌