You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Git Subtree将含多子目录的子仓库合并到主仓库

可以通过Git Subtree实现需求,步骤如下:

1. 添加子仓库远程并拉取代码

先把repo2添加为本地远程仓库,拉取它的master分支:

git remote add repo2 <你的repo2仓库地址>
git fetch repo2 master

2. 临时调整子仓库目录结构

创建临时分支,将repo2里base/下的内容移到根目录(这是为了适配后续合并到主仓库base/目录的操作):

git checkout -b repo2-temp repo2/master
git mv base/* .
git rm -r base
git commit -m "调整目录结构,适配主仓库subtree合并"

3. 合并到主仓库的base目录

切回主仓库的master分支,执行subtree添加命令:

git checkout master
git subtree add --prefix base repo2-temp --squash

执行完成后,主仓库的base/目录会同时包含原有folder1、folder2,以及来自repo2的folder3、folder4,完全符合需求结构。

后续同步子仓库变更的方法

如果repo2有更新,按以下步骤同步:

  1. 更新临时分支并调整目录:
git fetch repo2 master
git checkout repo2-temp
git merge repo2/master
git mv base/* .
git rm -r base
git commit -m "同步repo2最新变更并调整目录"
  1. 同步到主仓库:
git checkout master
git subtree pull --prefix base repo2-temp --squash

内容的提问来源于stack exchange,提问作者Veljko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 19:12:37