VS Code嵌套Git仓库如何各自遵循.gitignore规则?
解决嵌套Git仓库下父仓库追踪子目录特定文件的问题
核心原因
父仓库默认会把包含.git目录的子文件夹识别为独立Git仓库,自动忽略整个目录下的所有内容,所以你看不到src/config/api-keys-template.json的变更。
具体操作步骤
- 检查父仓库的
.gitignore文件,确保没有添加src/config/api-keys-template.json或src/这类会排除目标文件的规则。 - 在父仓库的根目录执行命令,强制将目标文件加入父仓库的暂存区:
git add -f src/config/api-keys-template.json - 提交这个变更到父仓库:
git commit -m "添加api-keys-template.json到父仓库"
关键说明
- 子仓库的
.gitignore规则不受影响:只要子仓库的.gitignore排除了这个文件,子仓库就不会追踪它的变更,两个仓库的独立管理结构依然保留。 - 后续修改该文件时,父仓库会正常检测到变更并允许提交,子仓库不会有任何感知(除非你主动在子仓库里添加这个文件)。
- 不要在子仓库中将该文件加入版本控制,否则会出现两个仓库同时管理同一文件的冲突问题。
内容的提问来源于stack exchange,提问作者Henrii Sylvan
相关产品推荐
相关产品推荐

