变基或合并到遥远的祖先分支?

时间:2021-02-17 16:53:07

标签: git

我们已经复制了我们的生产环境并安装了最新版本的软件。 新环境需要更改代码。 与此同时,旧环境也在发生变化。

  • 我们可以将旧环境的更改合并到新旧 master 分支吗? (他们需要有一个共同的祖先吗?)
  • 这应该通过合并还是 rebase 来完成?

谢谢

1 个答案:

答案 0 :(得分:1)

如果你想合并没有共同祖先的历史,你可以(使用--allow-unrelated-histories),但它可能不会顺利进行,因为没有好的合并基础。 (基本上,两者的共同代码“看起来像”与 git 冲突,因为合并的起点是一个空的工作目录。虽然公共代码冲突通常会自动解决,但它们会干扰真正冲突部分的显示方式,使事情变得更加困难。)

rebase 可能会更顺利,因为即使历史记录没有将它们显示为相关,补丁也可能干净地应用于具有相似内容的提交。

或者,如果每个历史记录中的某个点对应的提交具有相同的内容,您可以使用 git replace 暂时合并该点的历史记录,然后执行合并。