.gitignore排除[Bb]in/后,如何包含artifacts/bin目录内容?
问题解决:Gitignore全局排除Bin后包含Artifacts/Bin内容
你的问题出在匹配模式的覆盖顺序和路径匹配精度上。当前的!*/artifacts/[Bb]in这类规则无法覆盖[Bb]in/的排除,因为[Bb]in/会直接匹配到provision/scripts/artifacts/bin/这个目录,而你的允许规则匹配范围不足,且未优先确保父路径的可访问性。
修正后的.gitignore配置
将原有的允许规则替换为以下内容,放在[Bb]in/排除规则之后:
[Bb]in/ # this is line 164 # 允许任意层级artifacts目录下的Bin目录及其内容 !**/artifacts/ !**/artifacts/[Bb]in/ !**/artifacts/[Bb]in/**
原因说明
**/表示匹配任意层级的嵌套目录,能覆盖provision/scripts/artifacts这种多层路径,比*/的单层级匹配更灵活- 必须先允许
**/artifacts/目录本身(确保它没有被其他规则间接排除),其下的Bin目录规则才能生效 !**/artifacts/[Bb]in/明确取消对该目录的排除,后续的!**/artifacts/[Bb]in/**才能正常允许目录内的所有文件
验证方法
执行原命令再次检查:
git check-ignore -v provision/scripts/artifacts/bin/x
若配置正确,该命令将无返回结果,表示文件不再被忽略。
内容的提问来源于stack exchange,提问作者g.pickardou
相关产品推荐
相关产品推荐

