如何仅用根目录Git仓库管理多模块项目
统一用根目录Git管理多模块项目的解决方案
问题背景
本地registration-service根目录已有.git,包含两个模块:Springboot应用(自带独立.git)、React TypeScript应用(使用根目录.git)。执行git add .时仅能添加根目录和React模块内容,需要统一用根目录Git管理所有模块。
解决方案步骤
清理Springboot模块的独立Git仓库
- 找到Springboot模块目录下的隐藏
.git文件夹,彻底删除(需确保系统显示隐藏文件)。 - 原因:子目录的
.git会被Git识别为子仓库(submodule),根目录Git默认会忽略这类目录的内容,无法通过普通的git add .添加。
- 找到Springboot模块目录下的隐藏
检查根目录Git状态
- 进入根目录
registration-service,执行git status查看当前状态,确认Springboot模块目录是否显示为未跟踪状态。 - 若之前误重复执行过
git init无需担心,根目录已存在的.git不会被覆盖,仅会提示仓库已初始化。
- 进入根目录
正确添加所有模块内容到暂存区
- 为什么
git add .不生效?因为删除子仓库的.git后,Git可能仍保留了该目录的缓存记录,git add .只会扫描当前目录下未被忽略且非子仓库的内容,不会主动处理这类曾是子仓库的目录。 - 执行
git add --all(或简写git add -A):该命令会扫描所有目录,包括之前作为子仓库的Springboot模块,将其所有内容添加到暂存区。 - 也可以精准指定目录添加:
git add ./[Springboot模块目录名](替换为实际目录名称)。
- 为什么
提交并验证
- 执行
git commit -m "统一管理Springboot和React模块代码"完成提交。 - 执行
git status确认所有文件已提交,无未跟踪内容。后续正常使用git add .即可添加所有模块的修改。
- 执行
内容的提问来源于stack exchange,提问作者Patrick Chimeudeonwo
相关产品推荐
相关产品推荐

