合并两个git代码库,将 a.git 合并到另一个代码库 b.git 的子目录下

561 阅读1分钟

废话

可视化git管理用久了,这个问题也比较小众,可能是问题检索能力也下降了,试了几种方案都比较繁琐,记录下操作过程。

正文

现在有两个 git 仓库,如何将 a.git 迁移到 b.git/sub-app/a 目录下并保留提交历史。

a.git

首先操作要被迁移的 a.git

git clone a.git

// 新建分支
git checkout -b move_to_b

// 新建对应目录
mkdir sub-app/a

// 手动迁移当前项目文件到 sub-app/a,不包含 .git
// TOOD 文件mv命令

// 提交变动
git add .
git commit -m "chore: move a to sub-app/a"

// 将当前分支推送到 b.git
// 这里可直接使用文件路径指向 b.git 所在目录
git remote add b ../b
git fetch b
git push b move_to_b

b.git

// 新建分支
git checkout -b merge-add-sub-a

// 将 a.git 推送的 move_to_b 合并到当前分支
git merge move_to_b --allow-unrelated-histories

// 合并完成后正常推送即可

提前开香槟🍾

🙏 如有其他简洁方案,提前感谢指教。

相关检索参考链接