Gitignore如何配置忽略所有文件,仅保留任意层级的docker-compose.yml
Git忽略规则配置方案
问题根源
Git的.gitignore规则存在优先级限制:如果某一级父目录被标记为忽略,那么该目录下的所有子文件、子目录的例外规则(!开头)都不会生效。
你最开始用/*开头的配置直接忽略了根目录下的所有一级目录(如示例中的folderA、folderB),Git根本不会进入这些目录扫描,自然无法识别到深层的docker-compose.yml文件。
而你后续调整的配置因为开头用了全局匹配*,规则覆盖范围错误,才会误引入无关文件。
正确配置
直接将以下内容写入根目录的.gitignore文件即可:
# 忽略根目录下所有一级文件和目录 /* # 保留根目录的.gitignore文件 !/.gitignore # 开放所有层级目录的遍历权限(仅允许Git进入目录扫描,不会引入目录下的其他文件) !*/ # 保留任意位置的docker-compose.yml文件 !**/docker-compose.yml
验证方式
配置完成后执行git add .,再执行git status即可看到仅.gitignore和各级docker-compose.yml被加入待提交列表。
如果发现仍有无关文件被跟踪,说明这些文件在配置更新前就已经被Git纳入跟踪范围,执行git rm --cached <无关文件路径>取消跟踪即可。
内容的提问来源于stack exchange,提问作者Keval
相关产品推荐
相关产品推荐

