如何使用Git Flow合并已在Develop中的一些(不是全部)功能分支?

问题描述 投票:2回答:1

我正在使用Git Flow来组织我的工作流程。有时我们会遇到一个问题,即功能已合并到开发分支并部署到分段。

但是客户端只想要一些可接受的功能。此时我们遇到了一个问题,因为我无法将开发合并到master中,因为它具有客户端在生产中不需要的功能。

举个例子,说我有4个分支。 master develop feature-1feature-2master是目前的生产状态。 develop是当前的舞台状态,并用作新功能的起点。

让我们说开发工作在feature-1他们已经完成,合并请求回到develop客户端接受新功能,它已准备好进行进一步的整合测试。现在他们开始像以前一样在feature-2上工作。

客户进来说我需要feature-2直播但不是feature-1。在这一点上,我们处于泡沫状态,因为feature-2已经拥有了feature-1的承诺。

我想出了什么:

  • 告诉客户,运气困难feature-1也需要部署(客户不满意)
  • 分支master和樱桃挑选feature-2(eeew)
  • 删除develop分支并仅将master分支用于需要进行生产的功能。这里的问题是更难集成的测试,功能相互依赖(客户有时需要很长时间才能响应/测试,同时继续开发)。

我正在寻找一种方法来改变我的工作流程,以允许一些功能分支合并到主,但不是全部。与此同时,我不想通过不将功能合并到开发中来阻碍我的开发,因为大多数时候开发速度非常快,功能可能取决于其他功能。

git version-control workflow branching-and-merging
1个回答
1
投票

我在这里看到两个选项,你提到了其中一个:

  1. 回答你的问题你可以使用GitHub flowGitLab flow使用,例如,只有master直接合并功能而没有开发分支,但恕我直言(我们也使用GitFlow)你需要实验开发人员,我不知道是否学习新的成本工作流程对你来说是值得的。
  2. 即使它不是你要求的,我会去Feature Flagging,它允许你deploy when you want, release when you're ready。新功能从master合并到develop,可以在运行时使用标志单独激活。通过这种方式,您可以启用feature-2,但不会部署feature-1。 Launchdarkly有open source SDKs可用,你也可以自己实现。
© www.soinside.com 2019 - 2024. All rights reserved.