我来自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如何实现?要素如何从一个要素分支毫无问题地过渡到另一个?
据我所知,纯git不提供这种功能。基本上,您可以无限制地将每个提交彼此合并。
尽管如此,您所需要的就是所谓的分支机构策略。这些不是纯git的一部分,但是一些供应商提供了它们。因此,这就是在何处托管您的回购协议。我不想宣传Microsoft,但我认为Azure DevOps正是您所需要的。
Here是有关Azure DevOps的git中分支策略的链接。我建议有关构建验证的部分,如果构建成功,该部分仅允许在master分支上进行合并。
[其他供应商也可能提供这些东西,但是由于我主要使用Azure DevOps,所以我不知道确切的位置。
干杯,祝你好运!