1. 找到匹配规则的来源
在仓库根目录运行以下命令,将 path/to/file 替换为实际的未跟踪文件路径:
git check-ignore -v -- path/to/file详细输出包含来源文件、行号和匹配规则。来源可能是项目 .gitignore、.git/info/exclude 或全局忽略文件。匹配 ! 规则表示重新纳入;没有输出也可能是因为文件已被跟踪,需要另行检查。
2. 检查全局忽略文件配置
查看生效的 core.excludesFile 配置及定义它的配置文件:
git config --show-origin --get core.excludesFile没有输出且退出状态为 1,表示没有配置该项,不代表全局忽略已关闭。Git 还会读取默认忽略文件:$XDG_CONFIG_HOME/git/ignore;XDG_CONFIG_HOME 未设置或为空时,使用 $HOME/.config/git/ignore。优先依据 check-ignore 报告的规则来源排查。
3. 调整合适的规则并验证
根据输出确定应编辑哪里:团队共享的项目规则放在 .gitignore,本仓库个人使用的规则放在 .git/info/exclude,跨仓库个人规则放在全局忽略文件。修改全局规则会影响其他仓库,不要为了一个路径直接移除整项配置。 项目 .gitignore 的优先级高于 .git/info/exclude 和 core.excludesFile。只要父目录没有仍被排除,项目中的例外规则可以覆盖较低优先级的排除规则。调整后,用实际路径再次检查:
git check-ignore -v -- path/to/file 准确行为与更多细节请参阅官方说明: Git 官方文档 · git check-ignore 官方文档 · Git 配置官方文档