如何在Sourcesup平台将两个Git仓库整合为指定目录结构的同一项目
SourceSup平台多独立Git仓库嵌套的实现方案
核心实现逻辑
通过Git原生的子模块(submodule)能力关联P1、P2两个独立仓库,既保留两个仓库原有的独立版本控制属性,又能在父级Project仓库下形成要求的嵌套目录结构,规避直接嵌套本地仓库被Git识别为无效路径的问题。
分步操作流程
- 克隆SourceSup平台上提前创建的空Project仓库到本地
执行命令:git clone <SourceSup平台对应Project仓库的拉取地址>
进入项目本地工作目录:cd Project - 分别将P1、P2作为子模块挂载到当前项目根目录下
- 挂载P1仓库:
git submodule add <P1独立仓库的远端地址> P1 - 挂载P2仓库:
git submodule add <P2独立仓库的远端地址> P2
执行完成后,本地目录会自动生成目标嵌套结构:
Project ├─ P1 └─ P2 - 挂载P1仓库:
- 提交父仓库的关联配置并推送到SourceSup平台
- 校验工作区变更:确认根目录下生成了
.gitmodules关联配置文件,P1、P2目录已被正确识别 - 执行提交推送操作:
git add .git commit -m "Integrate P1 and P2 repositories into project"git push origin <项目默认分支名,如main/master>
- 校验工作区变更:确认根目录下生成了
操作避坑提醒
禁止直接将本地存储的P1、P2文件夹复制进Project目录后执行提交,这种操作下Git会自动跳过嵌套目录内的
.git版本文件,最终提交到远程的P1、P2目录是空路径,无实际代码内容
- 子模块添加过程中如果提示路径冲突,先删除当前目录下同名的冗余残留文件,再重新执行添加命令
- 后续协作者拉取Project仓库后,需要执行
git submodule update --init --recursive才能同步拉取P1、P2的实际代码内容
内容的提问来源于stack exchange,提问作者Nessrine Nour Elhouda
相关产品推荐
相关产品推荐

