1. 仅忽略项目根目录下的目录
在根目录 .gitignore 中添加下面的规则。它会忽略 logs/app.log 及根目录 logs 下的其他内容,而 packages/api/logs/app.log 仍可纳入跟踪。开头的 / 以这份 .gitignore 所在目录为基准。
/logs/ 2. 忽略任意层级的同名目录
如需忽略所有名为 logs 的目录,改用下面的规则。末尾 / 表示只匹配目录;没有末尾斜杠的 logs 也能匹配同名文件。
子目录中的 .gitignore 以自身位置为基准,其中的 /logs/ 指它旁边的 logs,并非仓库根目录。packages/api/logs/ 这类包含中间斜杠的路径同样相对于 .gitignore 所在目录。
logs/ 3. 验证匹配范围
创建上述两个未跟踪文件后,在仓库根目录运行命令,比较来源文件和匹配规则:
git check-ignore -v -- logs/app.log packages/api/logs/app.log使用 /logs/ 时,应只有根目录路径匹配;使用 logs/ 时,两者都应匹配。其他规则可能改变结果。已跟踪文件需单独处理;如果要在被忽略目录中保留例外文件,请参考例外规则文章。
准确行为与更多细节请参阅官方说明: Git 官方文档 · git check-ignore 官方文档