gitflow分支策略-多个版本

ntjbwcob  于 2023-09-29  发布在  Git
关注(0)|答案(3)|浏览(194)

目前,我们正在使用GitHub流(功能分支)策略。然而,这样做的问题是,有时候特性会在队列中等待发布,即
1.我有我的特色合并在开发(或主,我们只有)分支和部署到测试环境进行测试。
1.同时,我们希望开发或修复一些高优先级的错误/功能。如果不从develop分支恢复以前的代码,我就无法做到这一点。
为了解决这个问题,我尝试实现GitFlow分支策略。不过,我认为可能会出现与上述情况非常相似的问题,详情如下。

  • 我创建了一个新的功能分支,完成了我的开发,并合并为开发
  • 我们合并了更多的功能来开发
  • 剪切一个新的发布分支(我们称之为release-A),然后将其部署到测试环境中进行测试。
  • 在此功能正在测试的同时,有新的具有高优先级的功能请求
  • 现在,如果我从latest develop分支出来,它有其他我不想部署到prod的特性(release-A)。(或与母版合并)
    问题:
  • 我应该从PROD中的commit has分支,而不是从lastest、develop分支分支?
  • 如果是,我应该从特性分支创建一个发布吗?
  • 如何在测试中部署它,以便进行测试或两者(版本A和这个新特性可以并行发生)。后一点并不那么重要。
    **注意:**我正在使用Microsoft Azure Data Factory,因此我需要合并一些更改以开发分支(与Azure Data Factory相关),否则我将无法发布这些更改(无法创建ARM模板以部署到其他环境)
nsc4cvqm

nsc4cvqm1#

检查https://nvie.com/posts/a-successful-git-branching-model,其中分支模型很好地可视化。
如果您的新的高优先级功能应该抢占ReleaseA并直接进入生产,我会认为它是一个修补程序,因此我会从最新的生产版本创建一个修补程序分支。在那里开发特性并测试它,然后直接合并到master分支和开发分支中。
特性分支是临时的分支,只会分支到开发中。因此,您永远不会从特性分支创建发布分支,也不会将特性分支直接合并到生产/主分支中。

z0qdvdin

z0qdvdin2#

现在,如果我从latest develop分支出来,它还有其他我不想部署到prod的特性(release-A)
问题是您有一个develop用于多个版本:那个“集成”分支(你在其中集成)多个特性分支,变得混乱,因为你最终得到了“你不想要的特性”
最好有多个集成临时分支,也就是说,创建“开发”分支只是为了制作一个特定的版本(一旦完成,您就创建一个新的集成/开发版本来集成一组新的特性,或者是没有为上一个版本做好准备的旧特性分支)
这种方法的一个很好的例子是gitworkflow (one word)

wbgh16ku

wbgh16ku3#

你有没有想过使用cherry pick来从develope分支到release分支挑选特定的提交?因此可以避免不需要的特征。
在准备发布版本时,从develope分支检出发布版本分支。
一些新的特性/bug修复仍然可以合并开发,但是你可以选择你想在你的版本中包含的特性。
See visualised diagram

相关问题