合并Git存储库

问题描述 投票:2回答:1

我有两个我想要合并的存储库。让我们称之为旧式和新式。我的团队在2016年12月31日停止使用旧式,并于2017年1月1日开始使用新式。目录/项目样式从旧式复制并移至新式但历史记录除外。我想将这两个历史合并在一起,这样我就可以看到项目中发生了哪些变化。

我该怎么做?很多博客建议采用旧式,并将其作为新式的儿童目录,然后合并其无关的历史。但我相信我的历史是相关的。这样做会使代码库看起来不相似。

old-style: c1--c2--c3--c4--c5 <- master
January 1 2017  
new-style: c1--c2--c3--c4--c5--c6-- <- master

如果我将old-style作为new-style的子目录,我将不得不进行提交,指示在某个时刻发生了合并。

old-style: c1--c2--c3--c4--c5 <- master
             January 1 2017  \
                   new-style: c1'--c2'--c3'--c4'--c5'--c6'--c7 <- master
message at c7 indicating that old-style was added to new-style

理想的输出是什么

c1--c2--c3--c4--c5--c1'--c2'--c3'--c4'--c5'--c6'--c7-- <- master
git merge
1个回答
0
投票

您理想的情境图描述了一个rebase,您可以这样做。如果将这两个存储库作为分支,则可以运行git rebase --root --onto old-style new-style,这将生成线性历史记录。

如果--rebase-merges是一个主要开发分支,使用典型的合并工作流来保留合并提交而不是省略它们,您可能还想使用new-style。这需要一个合理的Git版本。

如果你真的想使用合并,你需要与--allow-unrelated-histories合并,因为分支在共享代码时不共享实际的公共提交。

© www.soinside.com 2019 - 2024. All rights reserved.