今天我的项目统计数据如下:
- 稳定版本正在使用主分支在生产环境中运行
- 我们开发了需要在生产前进行测试的新功能,因此我们有一个发布分支在SIT 环境下进行测试。这个新功能只有在 SIT 环境中经过所有测试后才能与 master merge 。
问题:产品负责人请求在生产表中添加一个新字段。因此团队提出了两种解决方案:
从 master 创建一个修补程序分支,添加新字段并部署到测试环境。此修补程序可能需要等待数月才能与主版本 merge ,因为在测试通过之后,我们需要等待产品负责人说可以投入生产,因为该字段取决于另一个系统更改。
从开发中创建一个功能分支,添加此新字段并部署到测试环境。 我认为这是最糟糕的解决方案,因为我正在开发的东西无法 merge 到master中,所以我需要一个cherry-pick来仅拾取所需的更改从发布到掌握。请记住,团队正在 SIT 环境(发布分支)中验证其他功能。
最佳答案
If I create feature from develop branch I will got functionalities that don't should go to production in this new feature branch. Remember that I can't send develop to production yet
Unhappy the big problem is not merge but the functionalities that can't go to master. How can I send only this change without send all other features inside a develop or release branch?
这意味着 gitflow 不适合您。
切换到gitworkflow (一个词,illustrated here)。
查看更多rocketraman/gitworkflow
.
这种工作流程(您不将 dev
merge 到 master
,而是仅将功能分支 merge 到 dev
,然后如果选择,则master
,以便能够轻松删除尚未准备好下一个版本的功能分支)在 Git 存储库本身中实现。
(来源:Gitworkflow: A Task-Oriented Primer)
你有:
master
是随时可以部署到生产环境的分支:下一个版本,其中一组选定的功能分支 merge 到master
中。dev
(或集成分支,或“next
”)是一起测试为下一版本选择的功能分支的分支maintenance
(或hot-fix
)分支是当前版本演变/错误修复的分支,with possible merges back todev
and ormaster
注意:在分布式工作流程中,您可以随时提交并将一些 WIP(正在进行中的工作)推送到个人分支,而不会出现任何问题:您将能够在将提交作为项目的一部分之前重新组织(git rebase)您的提交。功能分支。
关于git - 在 gitflow 模型中创建修补程序分支或功能分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55270568/