git - 如何使用 Git Flow 合并开发中已经存在的一些(不是全部)功能分支?
问题描述
我正在使用 Git Flow 来组织我的工作流程。有时我们会遇到功能已合并到开发分支并部署到登台的问题。
但随后客户只想要一些已接受的功能。在这一点上,我们遇到了一个问题,因为我无法将 develop 合并到 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 但不是全部。同时,我不想通过不将功能重新合并到开发中来妨碍我的开发人员,因为大多数时候开发进行得非常快,并且功能可能依赖于其他功能。
解决方案
我在这里看到两个选项,您提到了其中一个:
- 回答您的问题,您可以使用GitHub 流程或GitLab 流程,例如,仅 master 直接合并功能而无需开发分支,但恕我直言(我们也在使用 GitFlow)您需要经过实验的开发人员,我不知道学习成本是否一个新的工作流程对您来说是值得的。
- 即使这不是您所要求的,我也会选择功能标记,它允许您在需要时部署,在您准备好时发布。新功能合并到
master
from 中develop
,并且可以在运行时使用标志单独激活。这样,您可以启用feature-2
但不能feature-1
同时部署。Launchdarkly 有可用的开源 SDK,但您也可以自己实现。
推荐阅读
- ffmpeg - ffmpeg 中的输出流 0:1 错误中的无效丢弃 st:0 和非单调 DTS
- oracle - PowerBI Web:连接到 Oracle 云数据库
- r - 取消嵌套的 tidydrc 模型
- vb.net - 在 OpenGL 中显示位图
- node.js - 当本地服务器和 SPA 在不同端口上运行时使用 auth-cookie
- vim - Vim - 在折叠上方添加一行到折叠
- javascript - 将数组拆分为不同大小的块(4、3、3、3、4、3、3、3 等)
- python - 如何创建要在 Django 单元测试中使用的虚拟 pdf 文件
- c# - 如何使 RectTransform 跟随位于不同父级下的另一个 RectTransform?
- automation - Office365:清单和工作流程