如何使用.gitignore忽略目录全部内容仅保留单个指定文件
核心原因
你配置不生效的根本原因是原.gitignore里的[Bb]in/规则是直接忽略整个[Bb]in目录,Git的忽略规则逻辑是:如果目录被整体标记为忽略,Git不会遍历该目录下的任何内容,后续所有针对该目录内文件的例外规则都会直接失效。你之前尝试的所有例外规则都是针对目录内的文件,自然不会生效。
解决步骤
- 修改仓库根目录下的
.gitignore文件,找到原有[Bb]in/规则,替换为以下两行:
# 忽略所有[Bb]in目录下的文件,而非直接忽略目录本身 [Bb]in/**/* # 为需要保留的Settings.json添加例外规则 !/Website/[Bb]in/Settings.json
- 清除Git暂存区的历史忽略缓存(该操作不会删除本地实际文件,仅清除暂存区的忽略标记):
git rm -r --cached [Bb]in/
- 手动将目标文件加入暂存区验证规则有效性:
git add Website/bin/Settings.json
执行后无报错即说明配置生效,后续Settings.json会被正常纳入版本控制,[Bb]in目录下的其余文件仍会被自动忽略。你之前在bin目录下新增的单独.gitignore文件可以删除,无需额外配置。
内容的提问来源于stack exchange,提问作者InteXX
相关产品推荐
相关产品推荐

