我们正在尝试从多仓库转向单一仓库。除了将多个存储库移动到一个存储库之外,我们还在每个存储库上有多个分支。至少我们已经更新了所有分支,使其不位于主分支后面。
multirepo 当前状态
monorepo 文件夹结构
单一存储库中的预期分支
正如您在上面的示例中看到的,我们希望每个存储库代码都将移动到“apps”文件夹中。 我们希望保留除标签之外的所有提交历史记录。
我们尝试了一些替代方案,但是分支变得很复杂,因为在我们将代码(main)移动到子文件夹(apps/repo1)后,分支将有很大的差异。
任何人都可以按照食谱一步步执行这些任务。
对于任何寻找此问题解决方案的人:我已经制作了一个要点,其中包含一堆您可以使用的有用(部分)脚本。
基本上我的方法是:
现在每个分支:
git add --all
将所有文件标记为已暂存且无冲突对于多个存储库中出现的分支,步骤几乎相同,但它们对所有存储库重复步骤 5-8。