如何配置.gitignore忽略data目录内容但保留所有README.md文件
问题原因
你的配置不生效是因为 data/* 规则已经将data目录下的所有一级子条目(包括data根目录下的文件、以及external/raw等子目录)全部标记为忽略,Git默认不会扫描已被忽略的目录来匹配例外规则,你写的几条否定规则要么只匹配项目根目录的README.md,要么没有明确对应data目录下的路径,因此无法生效。
正确的.gitignore配置
# 忽略项目根目录下data文件夹内的所有内容 /data/* # 取消忽略data文件夹下所有层级的README.md文件 !/data/**/README.md
规则说明:
/data/*仅匹配根目录data下的一级子内容,不会直接锁死所有深层文件的规则匹配!/data/**/README.md里的**是Git通配符,可匹配任意层级的子目录,能覆盖data下所有位置的README.md文件
规则生效方法
如果你修改.gitignore之前,data目录下的文件已经被Git标记为忽略状态,需要执行以下命令清除本地缓存,让新规则生效:
git rm -r --cached data/ git add .
执行完成后再提交即可,此时data下除了所有README.md之外的其他内容都会被正常忽略。
内容的提问来源于stack exchange,提问作者shelper
相关产品推荐
相关产品推荐

