WordPress项目.gitignore配置问题:排除指定文件但保留特定静态文件失败
WordPress项目.gitignore配置问题:排除指定文件但保留特定静态文件失败
看起来你遇到了Git忽略规则里的一个常见坑——当你用通配符排除某个目录下的所有内容后,Git默认不会再扫描这些被排除的子目录,导致后面写的包含规则(!)根本无法生效。我来给你调整一下配置并解释原因:
正确的.gitignore配置
# 排除wp-content/uploads下的所有内容,但保留目录结构 /wp-content/uploads/* # 保留uploads根目录下的.htaccess和index.html !/wp-content/uploads/.htaccess !/wp-content/uploads/index.html # 保留uploads所有子目录下的.htaccess和index.html !/wp-content/uploads/**/.htaccess !/wp-content/uploads/**/index.html # 完全排除临时备份目录 /wp-content/upgrade-temp-backup/
配置说明
- 你之前用的
/wp-content/uploads/*会直接排除uploads目录下的所有文件和直接子目录,这意味着Git不会深入这些子目录检查内部文件,所以全局的!**/.htaccess规则对这些子目录里的文件完全不起作用。 - 我们需要明确指定保留uploads根目录和所有子目录下的目标文件,让Git主动扫描这些路径,覆盖之前的排除规则。
验证与修复小技巧
如果调整后还是有问题,可以用Git命令排查具体哪个规则在生效:
git check-ignore -v wp-content/uploads/woocommerce_uploads/.htaccess
要是输出显示的还是旧的排除规则,大概率是这些文件已经被Git的忽略缓存记录了,你可以用以下方式处理:
- 强制添加文件:
git add -f 目标文件路径 - 先清除缓存再添加:
git rm --cached 目标文件路径,之后再执行git add 目标文件路径
备注:内容来源于stack exchange,提问作者Scott Wood
相关产品推荐
相关产品推荐

