gitignore例外规则失效:检查父目录

想忽略输出目录中的多数文件,只保留一份说明,写上感叹号例外却可能无效。关键问题往往是父目录已经被整体排除,Git没有继续遍历里面的文件。

浅色学习桌与文件笔记
浅色主题概念配图,选自本站AI生成图库;非事件现场或产品实测截图。

先看一个无效的组合

自拟规则第一行out/,第二行!out/README.txt。第一行排除了整个out目录,因此仅给内部文件加否定规则,不能把它重新包含进来。这里讨论尚未跟踪的练习文件,已跟踪文件另有索引状态问题。

保留目录入口,再排除直接子项

在根目录.gitignore里,可将第一行改为/out/*,再写!/out/README.txt。这样out目录本身没有被排除,只匹配其直接子项,README.txt的例外才有机会生效。更深的目录需要逐层考虑,不能把这个两行例子套用于任意目录树。

分别验证保留项与排除项

准备out/README.txt和out/cache.bin两个无害文件,用git check-ignore -v -- out/README.txt查看规则来源,并同时检查cache.bin仍被忽略。详细输出中的感叹号是保留例外,不能看到输出就认为被排除。本站在临时仓库验证了修改前后结果,未改动真实项目。

资料与继续学习

Git:gitignore规则与否定模式。资料查阅日期:2026年10月4日。步骤与练习由本站整理。

诊断输出说明:Git:check-ignore。

资料查阅与编辑日期:2026年10月4日。作者:玖柒。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享