如何配置.gitignore排除build文件夹但保留所有子目录下的.bin文件?
解决.gitignore排除build目录但保留所有子目录中.bin文件的问题
问题出在Git忽略目录的规则上:一旦直接排除了build下的子目录,Git就不会再遍历这些子目录,后续的!**/*.bin规则无法作用到子目录里的文件。
你可以用以下配置实现需求,无需逐个指定子目录:
# 排除build目录下的所有直接文件和子目录 /build/* # 重新保留build的所有子目录(让Git能遍历到深层目录) !/build/**/ # 保留所有位置的.bin文件 !**/*.bin
原理说明:
/build/*会排除build目录下的所有直接文件和一级子目录,但不会递归排除更深层级的目录(不过此时一级子目录被排除了,Git还是不会进去,所以需要第二步)!/build/**/会撤销对build所有子目录的排除,让Git可以遍历build下的每一层子目录!**/*.bin会保留所有目录(包括build及其子目录)中的.bin文件
这样配置后,不管.bin文件在build的哪一层子目录里,都会被保留,同时build下的其他非.bin文件会被忽略。
内容的提问来源于stack exchange,提问作者Agustin Cruz
相关产品推荐
相关产品推荐

