【问题标题】:How do I use Git Flow to merge some (not all) feature branches already in Develop?如何使用 Git Flow 合并开发中已经存在的一些(不是全部)功能分支?
【发布时间】:2019-09-03 21:47:59
【问题描述】:

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

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

举个例子,假设我有 4 个分支。 masterdevelopfeature-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. 回答您的问题,您可以使用GitHub flowGitLab flow 使用,例如,只有 master 直接合并没有开发分支的功能,但恕我直言(我们也在使用 GitFlow)您需要经过实验的开发人员,我不知道如果学习新工作流程的成本对您来说是值得的。
    2. 即使这不是您所要求的,我也会选择Feature Flagging,它允许您使用deploy when you want, release when you're ready。新功能从develop 合并到master,并且可以在运行时使用标志单独激活。这样,您可以启用feature-2,但不能同时部署feature-1。 Launchdarkly 有open source SDKs 可用,但您也可以自己实现。

    【讨论】:

      猜你喜欢
      • 2020-09-08
      • 2016-01-25
      • 2017-09-17
      • 2015-11-18
      • 2013-07-25
      • 2015-12-22
      • 2012-05-08
      • 1970-01-01
      • 2013-12-05
      相关资源
      最近更新 更多