如何配置git使根.gitignore生效、忽略子目录.gitignore的规则作用
解决方案
首先确认可以通过Git配置实现你的需求,不需要删除子目录下的.gitignore文件,具体操作如下:
方案1(推荐,适用于Git 2.31及以上版本)
Git 2.31版本新增了专门的配置项满足这个场景,只需要在仓库根目录执行以下命令即可:
git config --local core.ignoreDirIgnores true
- 该配置仅对当前本地仓库生效,不会修改仓库内的任何提交内容
- 配置生效后,所有子目录下的
.gitignore规则会被完全屏蔽,仅根目录的.gitignore、.git/info/exclude以及全局Git忽略规则会生效 - 子目录下的
.gitignore文件本身可以正常提交到版本库,不受任何影响
方案2(适用于Git版本低于2.31的场景)
如果你的Git版本不支持上述配置,可以通过指定仓库级全局忽略文件的方式实现:
- 在仓库根目录执行命令,指定当前仓库的全局忽略文件为根目录的
.gitignore:
git config --local core.excludesFile "$(pwd)/.gitignore"
- 手动清空
.git/info/exclude文件的原有内容,避免其他规则干扰 - 该方案同样不会影响子目录
.gitignore文件的正常提交,仅屏蔽其规则生效
注意事项
- 上述配置都属于仓库本地配置,不会同步到远程仓库,其他协作者克隆仓库后如果需要相同效果,需要在本地执行一次对应配置命令
- 如果需要验证规则是否生效,可以执行
git check-ignore -v 目标文件路径命令查看当前生效的忽略规则来源
内容的提问来源于stack exchange,提问作者fowlball1010
相关产品推荐
相关产品推荐

