Git Ignore配置:如何忽略外层bar文件夹,仅允许foo/bar?
可行,正确配置方法如下
方案一:精准忽略根目录下的bar(最直接)
如果你的需求只是忽略仓库根目录的bar,同时保留foo/bar,直接用以下配置即可:
# 仅匹配根目录下的bar文件夹 /bar/
原因:开头的斜杠/是关键,它表示只匹配仓库根目录下的bar目录,不会影响子目录(比如foo/下)的同名文件夹,因此不需要额外写放行规则。
方案二:先忽略所有bar,再单独放行foo/bar(适用于多场景)
如果需要忽略全局所有bar,仅放行foo/bar,则要注意父目录的忽略规则影响,配置如下:
# 忽略所有层级的bar文件夹 bar/ # 必须先取消对foo目录的忽略(否则父目录被忽略的话,子目录的放行规则不生效) !foo/ # 放行foo目录下的bar文件夹 !foo/bar/
关键注意点:
- 规则顺序不能乱:取消忽略的规则必须写在对应的忽略规则之后。
- 如果
foo/bar之前已经被Git跟踪过,需要先执行命令清除缓存:
之后再重新添加并提交,忽略规则才会生效。git rm --cached -r foo/bar
内容的提问来源于stack exchange,提问作者TeKapa
相关产品推荐
相关产品推荐

