废话
可视化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
// 合并完成后正常推送即可
提前开香槟🍾
🙏 如有其他简洁方案,提前感谢指教。