我来自Perforce,所以请原谅我的问题。我正在评估git及其集成模型。在Perforce中,我有一个master
和一个develop
分支。 feature1
和feature2
是develop
的分支-类似于git flow,不同之处在于master
中的更改返回到feature
分支中,因此进行了循环集成模型。
master-------+-----+
⬆ | |
+-develop | |
⬆ ⬇ |
+-----feature1-+ |
⬆ ⬇
+------------feature2
这解决了C ++管道中的一个大问题。有人将其功能合并到develop
中,并假设由于冲突解决不正确等导致编译器错误。(由于8个不同的目标,开发人员根本无法在本地解决所有问题)。因此,他们提交了该文件,在构建服务器上对其进行了编译,并修复了剩下的所有问题。仅当develop
在所有平台上均可编译时,所做的更改才会合并到master
中。因此,这就像一个安全分支,因此在master
中不会破坏任何东西。使用此解决方案,可以确保每个开发人员从master
到其feature
分支的任何集成都是干净的并且可以正常工作。
现在我的问题是,用git flow如何实现?功能如何从一个功能分支无缝分支到另一个功能?
答案 0 :(得分:2)
如何仅在主分支上运行构建版本
据我了解,纯git不提供这种功能。基本上,您可以无限制地将每个提交合并在一起。
尽管如此,您仍需要所谓的分支策略。 这些不是纯git的一部分,但是一些供应商提供了它们。 因此,这就是在何处托管您的回购协议。 我不想刊登广告,但是我认为Azure DevOps正是您所需要的。
是有关Azure DevOps的git中分支策略的链接。我建议有关构建验证的部分,该部分仅在构建成功的情况下才允许在master分支上进行合并。
其他供应商也可能会提供这些东西,但由于我主要使用Azure DevOps,我不知道确切的原因。
如何与分支机构合作
当涉及git工作流和分支模型时,有多种方法,每种方法各有利弊。 如果您想继续使用Perforce分支的基本概念,建议使用Here分支模型。
关于您的问题
如果甚至可能,常见或推荐“环/循环合并/集成”
我认为我可以回答“是的,这是可能的并且是常识,但我不会称其为圆环”。网站上提供的分支模型是如何使用合并在分支之间交换信息的一个很好的例子。
干杯,祝你好运!