如何配置Git忽略嵌套的子仓库?
解决Git忽略嵌套仓库的问题
Git会把包含.git目录的文件夹识别为子模块,而非普通目录/文件,所以常规的.gitignore规则对这类嵌套仓库无效,这就是你执行git status仍能看到test_data/目录变更的原因。
有效解决方案:
- 在
.gitignore文件中添加一行规则:
这会直接忽略整个test_data/test_data目录,包括其中的嵌套仓库。 - 如果之前Git已经追踪过
test_data/目录,需要先清除缓存:
执行完上述命令后,提交git rm --cached test_data -r.gitignore的修改,后续git status就不会再显示该目录的变更了。
为什么之前的规则无效?
你之前添加的test_data/*不会匹配.git这类点开头的隐藏目录,而test_data/.*虽然能匹配隐藏文件,但Git对包含.git的目录有特殊处理逻辑,不会遵循普通的忽略规则,因此直接忽略整个目录是最直接有效的方法。
内容的提问来源于stack exchange,提问作者OLEGSHA
相关产品推荐
相关产品推荐

