Maven 多模块项目提交 GitHub,部分模块代码 Git 无法识别追踪,部分目录模块未被 Git 扫描追踪 目录一、本次修复总结根本原因修复操作二、完整实现原理与分步操作第一步诊断仓库根目录位置第二步移动.git 目录至项目根目录第三步处理文件路径变更第四步清理不需要提交的文件一句话核心总结三、造成仓库层级问题的原因以及规避建议前言小编今天准备把代码提交至 GitHub 时发现新增的其他包下代码模块完全无法被 Git 扫描识别执行 git status 看不到新增文件无法纳入版本控制。折腾一阵定位出仓库层级问题整理这套方案分享出来遇到同款问题可以直接套用✅一、本次修复总结根本原因Git 仓库隐藏目录.git之前被错误初始化在shopping_goods_service/子目录内而非 Maven 父项目根目录shopping/。 直接造成只有shopping_goods_service目录下文件能被 Git 追踪shopping_common、shopping_manager_api这两个模块完全不在 Git 仓库管辖范围。修复操作将.git文件夹上移到项目根目录整个多模块项目统一由同一个 Git 仓库管理Git 自动识别文件路径变更旧路径文件正确映射到 目标子目录下⚠️ 注意该调整改动了项目目录层级原先根目录代码迁移至子文件夹GitHub 仓库展示结构会同步变更属于正常现象也是 Maven 多模块项目标准结构。二、完整实现原理与分步操作以下是我的操作流程以及相应效果小伙伴们照葫芦画瓢就行。第一步诊断仓库根目录位置打开终端执行命令查找项目内所有.git 文件夹定位仓库位置find . -name .git -type d输出结果示例./shopping_goods_service/.git从结果就能看明白Git 仓库根目录是shopping_goods_service/不是项目顶层shopping/。这就是 IDE 只能识别单个模块文件其余模块完全看不见的根源。第二步移动.git 目录至项目根目录执行这条移动命令mv shopping_goods_service/.git .git简单解释下.git这个隐藏文件夹就是 Git 仓库核心所有提交记录、分支、远程配置、暂存信息全部保存在这里。移动它等同于修改 Git 仓库的管控范围。第三步处理文件路径变更移动完成后执行git statusGit 会检测到大量文件路径变动。 执行下面命令暂存全部改动git add -AGit 会智能识别文件内容没变只是路径迁移判定为重命名renamed不会当成删除 新增文件处理。 输出示例renamed: src/main/java/.../BrandServiceImpl.java - shopping_goods_service/src/main/java/.../BrandServiceImpl.java好处完整保留所有代码提交历史远程仓库也展示为文件移动不会丢失记录。第四步清理不需要提交的文件把日志文件移出暂存区git reset HEAD -- derby.log service.log logs/在.gitignore新增过滤规则logs/ *.log总结.git 目录在哪Git 仓库的根目录就在哪。使用 mv 移动它即可调整仓库管辖范围执行 git add -AGit 自动识别文件重命名。三、造成仓库层级问题的原因以及规避建议核心逻辑就一点Git 仓库根由初始化仓库时选中的文件夹决定IDEA 在哪一层创建仓库.git就生成在哪。在多模块 Maven 项目初始化Git 仓库时 一定要在左侧项目栏右键最外层父项目根目录执行Initialize Repository。❌ 千万不要右键到单个子模块去初始化仓库这就是本次问题产生的根源。新建 Maven 子模块注意避坑 创建子模块的时候弹窗里取消勾选 Create Git repository。 子模块只是普通文件夹不需要单独创建 Git 仓库统一交给父项目根目录的仓库管理。如果要自查仓库数量终端执行这条命令检查find . -name .git -type d正常只输出项目根目录 /.git。 如果打印出多个目录路径说明多处创建了 Git 仓库后续必然出现文件追踪异常。