在gitflow模型中创建修补程序分支或功能分支

时间:2019-03-20 21:36:52

标签: git git-flow

我正在团队中使用此模型:enter image description here

今天我的项目统计如下:

  • 稳定版正在使用master分支在生产中运行
  • 我们开发了需要在生产之前进行测试的新功能,因此我们有一个发布分支正在 SIT环境下进行测试。在SIT环境中进行所有测试后,可以将这些新功能与master合并。

问题产品负责人请求在“生产”表中添加新字段。因此,团队提出了两种解决方案:

  • 从master创建一个修补程序分支,添加新字段并部署到测试环境。此修补程序可能要等上几个月才能与母版合并,因为在测试通过之后,我们需要等待产品负责人说可以投入生产,因为该字段取决于另一个系统更改。 / p>

  • 从开发创建功能分支,并添加此新字段并部署到测试环境我认为这是最糟糕的解决方案,因为我开发中的东西无法合并到母版中,因此我将需要 cherry-pick 来仅拾取需要的更改从发行到掌握。请记住,团队正在验证 SIT环境(发布分支)中的其他功能。

1 个答案:

答案 0 :(得分:3)

  

如果我从developer分支创建功能,那么我将获得不应该在该新功能分支中投入生产的功能。请记住,我还不能将开发项目发送到生产环境

     

不开心,最大的问题不是合并,而是无法掌握的功能。我如何只发送此更改,而又不发送开发或发行分支中的所有其他功能?

这意味着gitflow不是适合您的工作流程。
切换到 gitworkflow (一个词,illustrated here)。
rocketraman/gitworkflow上查看更多内容。

这种工作流程(您不将dev合并到master,而是仅将功能分支合并到dev,然后将其合并到master ,以便能够轻松删除尚未准备好用于下一版本的功能分支)。

https://github.com/rocketraman/gitworkflow/raw/master/docs/images/topicgraduation.png

(来源:Gitworkflow: A Task-Oriented Primer

您有:

  • master是随时可以部署到生产中的分支:下一个版本,在master中合并了一组选定的功能分支。
  • dev(或集成分支,或'next')是一起测试为下一版本选择的功能分支的
  • maintenance(或hot-fix)分支是当前版本演进/错误修复with possible merges back to dev and or master
  • 的分支。

注意:在该分布式工作流程中,您可以随时提交并向个人分支推送一些WIP(进行中的工作)而不会出现问题:您将能够重新组织(git rebase)提交,然后再将它们纳入功能分支。