.gitignore配置问题:忽略文件夹内容但保留指定文件及子文件夹文件
解决.gitignore保留指定文件/文件夹的配置方案
需求
忽略models文件夹下的所有内容,但保留models/saved_model.ckpt文件以及models/lightning_logs/version_k文件。
问题分析
你之前的两种配置失效的核心原因是Git的忽略规则逻辑:当父目录被整体忽略时,直接声明子文件的"不忽略"规则不会生效——Git不会扫描已经被标记为忽略的目录,自然也不会识别里面的例外规则。
正确的.gitignore配置
# 忽略models目录下的所有内容 **/models/* # 保留saved_model.ckpt文件 !**/models/saved_model.ckpt # 先取消对lightning_logs文件夹的忽略(必须保留文件夹,才能识别里面的例外文件) !**/models/lightning_logs/ # 忽略lightning_logs目录下的所有内容 **/models/lightning_logs/* # 保留version_k文件 !**/models/lightning_logs/version_k
额外注意事项
如果之前已经将models目录下的文件提交到Git缓存中,需要先清除缓存才能让新的忽略规则生效:
git rm -r --cached models/
执行完后重新提交代码,新的忽略规则就会生效。
内容的提问来源于stack exchange,提问作者user16451053
相关产品推荐
相关产品推荐

