Git流和功能分支同步

时间:2019-12-28 07:28:52

标签: git perforce

我来自Perforce,所以请原谅我的问题。我正在评估git及其集成模型。在Perforce中,我有一个master和一个develop分支。 feature1feature2develop的分支-类似于git flow,不同之处在于master中的更改返回到feature分支中,因此进行了循环集成模型。

   master-------+-----+
   ⬆           |     |
   +-develop    |     |
     ⬆         ⬇     | 
     +-----feature1-+ |
     ⬆               ⬇
     +------------feature2

这解决了C ++管道中的一个大问题。有人将其功能合并到develop中,并假设由于冲突解决不正确等导致编译器错误。(由于8个不同的目标,开发人员根本无法在本地解决所有问题)。因此,他们提交了该文件,在构建服务器上对其进行了编译,并修复了剩下的所有问题。仅当develop在所有平台上均可编译时,所做的更改才会合并到master中。因此,这就像一个安全分支,因此在master中不会破坏任何东西。使用此解决方案,可以确保每个开发人员从master到其feature分支的任何集成都是干净的并且可以正常工作。

现在我的问题是,用git flow如何实现?功能如何从一个功能分支无缝分支到另一个功能?

1 个答案:

答案 0 :(得分:2)

分支机构政策

如何仅在主分支上运行构建版本

据我了解,纯git不提供这种功能。基本上,您可以无限制地将每个提交合并在一起。

尽管如此,您仍需要所谓的分支策略。 这些不是纯git的一部分,但是一些供应商提供了它们。 因此,这就是在何处托管您的回购协议。 我不想刊登广告,但是我认为Azure DevOps正是您所需要的。

Table of map implementations in Java 11, comparing their features是有关Azure DevOps的git中分支策略的链接。我建议有关构建验证的部分,该部分仅在构建成功的情况下才允许在master分支上进行合并。

其他供应商也可能会提供这些东西,但由于我主要使用Azure DevOps,我不知道确切的原因。

Git分支模型

如何与分支机构合作

当涉及git工作流和分支模型时,有多种方法,每种方法各有利弊。 如果您想继续使用Perforce分支的基本概念,建议使用Here分支模型。

关于您的问题

  

如果甚至可能,常见或推荐“环/循环合并/集成”

我认为我可以回答“是的,这是可能的并且是常识,但我不会称其为圆环”。网站上提供的分支模型是如何使用合并在分支之间交换信息的一个很好的例子。

结论

  • 使用分支策略来保护您的主分支。仅会提交有效的代码。
  • 使用分支模型合并分支之间的更改

干杯,祝你好运!