合并过去拆分的两个 git 个存储库
Merge two git repositories that have been splitted in the past
我有两个 git 存储库,它们在 2 年前分开了,我们想将它们合并以再次获得 1 个存储库(如果可能的话,将 2 年的工作保留在历史记录中..) .
进行拆分后,我们在每个存储库中删除了我们希望保留在另一个存储库中的文件。
那么我应该如何合并这些 repo?
第一个 reopsitory 的分支 (develop/master/..) 已在第二个 reopsitory 中删除,因为它们未被使用(这就是进行拆分的原因...)
首先,是的,可以合并两个 branches/repos 不相关的历史记录。
对于主分支,您将使用 git merge --allow-unrelated-histories
:
git clone URL/repoA
cd repoA
git checkout main
git remote add repoB URL/repoB
git fetch repoB
git merge --allow-unrelated-histories repoB/main
解决所有出现的冲突后,您应该有一个在此合并的存储库上进行开发的起点。这将产生一个有点奇怪的历史,对不同的初始提交有两个单独的分支,但这应该没有问题。
我在这里预见的问题是任何其他存储库中仍然存在的分支。为了保持一致性,您会希望他们也拥有来自其他存储库的文件。希望你不要太多!
我能看到的一些选项:
- Dev/feature 个分支:将它们变基到新合并的起点?
- 如果您有一个正在进行的
develop
分支,在上面不相关的合并之后将 main 合并回它应该可以解决问题。该解决方案也可能适用于其他活跃的开发和功能分支。
- Historical/maintenance 旧版本的分支:艰难。在正确的时间从另一个仓库中的提交中进行不相关的合并?或者,如果它们只是历史记录而您不再使用它们,请不要合并它们?
我有两个 git 存储库,它们在 2 年前分开了,我们想将它们合并以再次获得 1 个存储库(如果可能的话,将 2 年的工作保留在历史记录中..) .
进行拆分后,我们在每个存储库中删除了我们希望保留在另一个存储库中的文件。
那么我应该如何合并这些 repo?
第一个 reopsitory 的分支 (develop/master/..) 已在第二个 reopsitory 中删除,因为它们未被使用(这就是进行拆分的原因...)
首先,是的,可以合并两个 branches/repos 不相关的历史记录。
对于主分支,您将使用 git merge --allow-unrelated-histories
:
git clone URL/repoA
cd repoA
git checkout main
git remote add repoB URL/repoB
git fetch repoB
git merge --allow-unrelated-histories repoB/main
解决所有出现的冲突后,您应该有一个在此合并的存储库上进行开发的起点。这将产生一个有点奇怪的历史,对不同的初始提交有两个单独的分支,但这应该没有问题。
我在这里预见的问题是任何其他存储库中仍然存在的分支。为了保持一致性,您会希望他们也拥有来自其他存储库的文件。希望你不要太多!
我能看到的一些选项:
- Dev/feature 个分支:将它们变基到新合并的起点?
- 如果您有一个正在进行的
develop
分支,在上面不相关的合并之后将 main 合并回它应该可以解决问题。该解决方案也可能适用于其他活跃的开发和功能分支。 - Historical/maintenance 旧版本的分支:艰难。在正确的时间从另一个仓库中的提交中进行不相关的合并?或者,如果它们只是历史记录而您不再使用它们,请不要合并它们?