首页 > 解决方案 > 如何使用 Git Flow 合并开发中已经存在的一些(不是全部)功能分支?

问题描述

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

但随后客户只想要一些已接受的功能。在这一点上,我们遇到了一个问题,因为我无法将 develop 合并到 master 中,因为它具有客户在生产中还不需要的功能。

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

假设开发人员feature-1完成了工作,将请求合并回develop客户端接受新功能,并准备好进行进一步的集成测试。现在他们开始研究feature-2和以前一样的故事。

客户进来说我需要feature-2生活但不需要feature-1。此时我们处于泡菜状态,因为feature-2已经提交了feature-1.

我想出了什么:

我正在寻找一种方法来更改我的工作流程,以允许将某些功能分支合并到 master 但不是全部。同时,我不想通过不将功能重新合并到开发中来妨碍我的开发人员,因为大多数时候开发进行得非常快,并且功能可能依赖于其他功能。

标签: gitversion-controlworkflowbranching-and-merging

解决方案


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

  1. 回答您的问题,您可以使用GitHub 流程GitLab 流程,例如,仅 master 直接合并功能而无需开发分支,但恕我直言(我们也在使用 GitFlow)您需要经过实验的开发人员,我不知道学习成本是否一个新的工作流程对您来说是值得的。
  2. 即使这不是您所要求的,我也会选择功能标记,它允许您在需要时部署,在您准备好时发布。新功能合并到masterfrom 中develop,并且可以在运行时使用标志单独激活。这样,您可以启用feature-2但不能feature-1同时部署。Launchdarkly 有可用的开源 SDK,但您也可以自己实现。

推荐阅读