我如何在没有共同祖先的情况下合并生产和开发
How do I merge production and dev with no common ancestor
我继承了一个大型代码库,开发分支在 git 下已经有一段时间了,但生产没有受到任何版本控制。
..我知道。
代码上线的方法是在dev和prod之间来回手动复制所有更改的文件,直到它们同步,并尽快处理后续灾难,周末。
从那以后,我将生产置于 git git init/add/commit
的全新实例下,现在可以跟踪所有这些在生产中上线的修补程序,(因为我回到每个人后面并制作检查点每天提交)。我已将 'origin' 生产设置为与开发相同,因此生产现在是同一存储库的一个单独分支,没有共同的祖先。
我想在这里进行一个真正的开发过程,这意味着我想将分支合并在一起。
在这一点上值得一提的是,开发和生产分支都在进行开发,因为首席开发人员喜欢在生产中实时修复问题。我相信我可以改变他的这个习惯,如果我可以提供将修复程序应用到另一个分支并将 that 合并到生产中的替代方案。
但要做到这一点,我需要一个与生产共享共同祖先的分支。
..我该怎么办?我可以将生产合并到开发中,这会产生大量冲突,我可以尝试手动解决这些冲突(即 mergetool),但这听起来工作量很大。
有没有更好的方法?
我仍在学习如何成为一名 git 大师,我想完成这项工作,但是..最好的方法是什么?
首先:抱歉,乔恩,这听起来一团糟。 :-(
这是一种方法:
git 主分支:
这应该是当前的生产。 (简单)
hotfix 分支,来自 master:
这些应该是您描述的在生产中完成的修补程序 (很简单,假设进行修复的人确实这样做了)
开发分支:
从 master 的一个分支开始。然后将文件/更改复制到这个分支,就像团队已经在做的那样,无论如何都要将文件从开发转移到生产。任何时候将修补程序应用于 master 时合并到 master 中。这将导致一个分支可以无冲突地合并到 master 中,但会有一个很大的差异,可以由整个团队审查。 (辛苦,但值得)
一旦你完成了这个,你就可以开始遵循更标准的方法,比如 git-flow。
我继承了一个大型代码库,开发分支在 git 下已经有一段时间了,但生产没有受到任何版本控制。
..我知道。
代码上线的方法是在dev和prod之间来回手动复制所有更改的文件,直到它们同步,并尽快处理后续灾难,周末。
从那以后,我将生产置于 git git init/add/commit
的全新实例下,现在可以跟踪所有这些在生产中上线的修补程序,(因为我回到每个人后面并制作检查点每天提交)。我已将 'origin' 生产设置为与开发相同,因此生产现在是同一存储库的一个单独分支,没有共同的祖先。
我想在这里进行一个真正的开发过程,这意味着我想将分支合并在一起。
在这一点上值得一提的是,开发和生产分支都在进行开发,因为首席开发人员喜欢在生产中实时修复问题。我相信我可以改变他的这个习惯,如果我可以提供将修复程序应用到另一个分支并将 that 合并到生产中的替代方案。
但要做到这一点,我需要一个与生产共享共同祖先的分支。
..我该怎么办?我可以将生产合并到开发中,这会产生大量冲突,我可以尝试手动解决这些冲突(即 mergetool),但这听起来工作量很大。
有没有更好的方法?
我仍在学习如何成为一名 git 大师,我想完成这项工作,但是..最好的方法是什么?
首先:抱歉,乔恩,这听起来一团糟。 :-(
这是一种方法:
git 主分支: 这应该是当前的生产。 (简单)
hotfix 分支,来自 master: 这些应该是您描述的在生产中完成的修补程序 (很简单,假设进行修复的人确实这样做了)
开发分支: 从 master 的一个分支开始。然后将文件/更改复制到这个分支,就像团队已经在做的那样,无论如何都要将文件从开发转移到生产。任何时候将修补程序应用于 master 时合并到 master 中。这将导致一个分支可以无冲突地合并到 master 中,但会有一个很大的差异,可以由整个团队审查。 (辛苦,但值得)
一旦你完成了这个,你就可以开始遵循更标准的方法,比如 git-flow。