Bob*_*son 3 git version-control
我正在尝试将多个 git 存储库合并到一个新存储库中,每个旧存储库作为新存储库中的子目录。git-stitch-repo 似乎是我想要的工具。
但是,文档不太清楚。我能够遵循它(https://metacpan.org/pod/distribution/Git-FastExport/script/git-stitch-repo),直到“现在可以创建主分支并让它指向”的部分在正确的提交中,删除两个 master-A 和 master-B 分支。”
什么是“正确的提交”,以及如何执行这些步骤?
现在我有几个分支标记为 master-A、master-B 等,它们似乎与原始存储库相对应。我真正想要的只是一个包含所有内容的主分支。听起来有可能到达那里,但我不知道如何到达那里。
小智 5
我是git-stitch-repo的作者。根据您的描述,这确实是您正在寻找的工具。
该程序的工作原理如下:
git fast-export它会查看从每个存储库的输出中获得的所有提交以进行合并,并为以下内容构建一个新流git fast-import由于所有存储库都可以有同名的引用,因此程序会在引用名称末尾添加 、 等,这样您就可以知道新存储库中的每个引用来自哪个存储库-A。-B这就是为什么你会得到master-A和master-B。选择“正确的”主人只是意味着决定哪一个master-A和master-B是你的新主人master。
当前版本的最大问题(我目前正在修复)是,对于存储库 A 中的每个分支点,系统必须决定在哪一侧附加存储库 B 的下一个提交(如果实际上有替代方案)在尊重拼接算法约束的几个有效提交之间。如果所有选项都有效,则选择基本上是随机的。然后 和master-A可以master-B在不同的分支上结束,这通常不是您想要的。(这就是RT #70695所有关于。)
正如我上面所说,我正在努力解决问题,并且我非常希望它能够解决您的问题。我希望能够在几天内发布新版本。