gpt4 book ai didi

git - merge Git 存储库

转载 作者:行者123 更新时间:2023-12-04 15:46:06 27 4
gpt4 key购买 nike

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

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

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

如果我将 old-style 设为 new-style 的子目录,我将必须有一个 commit 表明在某个时候发生了 merge 。

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

最佳答案

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

如果 new-style 是一个主要的开发分支,它使用典型的 merge 工作流程来保留 merge 提交而不是省略它们。这需要一个相当新的 Git 版本。

如果你真的想使用 merge ,你需要使用 --allow-unrelated-histories 进行 merge ,因为分支在共享代码时不会共享实际的公共(public)提交.

关于git - merge Git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55692365/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com