我正在使用Git Flow来组织我的工作流程。有时我们会遇到一个问题,即功能已合并到开发分支并部署到分段。
但是客户端只想要一些可接受的功能。此时我们遇到了一个问题,因为我无法将开发合并到master中,因为它具有客户端在生产中不需要的功能。
举个例子,说我有4个分支。 master
develop
feature-1
和feature-2
。 master
是目前的生产状态。 develop
是当前的舞台状态,并用作新功能的起点。
让我们说开发工作在feature-1
他们已经完成,合并请求回到develop
客户端接受新功能,它已准备好进行进一步的整合测试。现在他们开始像以前一样在feature-2
上工作。
客户进来说我需要feature-2
直播但不是feature-1
。在这一点上,我们处于泡沫状态,因为feature-2
已经拥有了feature-1
的承诺。
我想出了什么:
feature-1
也需要部署(客户不满意)master
和樱桃挑选feature-2
(eeew)develop
分支并仅将master
分支用于需要进行生产的功能。这里的问题是更难集成的测试,功能相互依赖(客户有时需要很长时间才能响应/测试,同时继续开发)。我正在寻找一种方法来改变我的工作流程,以允许一些功能分支合并到主,但不是全部。与此同时,我不想通过不将功能合并到开发中来阻碍我的开发,因为大多数时候开发速度非常快,功能可能取决于其他功能。
我在这里看到两个选项,你提到了其中一个:
master
合并到develop
,可以在运行时使用标志单独激活。通过这种方式,您可以启用feature-2
,但不会部署feature-1
。 Launchdarkly有open source SDKs可用,你也可以自己实现。