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

标签 git git-flow

我在我的团队中使用这个模型:enter image description here

今天我的项目统计数据如下:

  • 稳定版本正在使用主分支在生产环境中运行
  • 我们开发了需要在生产前进行测试的新功能,因此我们有一个发布分支在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 存储库本身中实现。

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

(来源:Gitworkflow: A Task-Oriented Primer)

你有:

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

注意:在分布式工作流程中,您可以随时提交并将一些 WIP(正在进行中的工作)推送到个人分支,而不会出现任何问题:您将能够在将提交作为项目的一部分之前重新组织(git rebase)您的提交。功能分支。

关于git - 在 gitflow 模型中创建修补程序分支或功能分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55270568/

相关文章:

java - 通过 java 程序执行命令时如何为命令提示符编写/提供输入

git - "diverged"在 git 或 git flow 术语中意味着什么?

git - 将功能 merge 到两个分支

git - 关于多个发布行和 git-flow 的建议,适用于 git 非专家

Git flow 发布分支和标签——带或不带 "v"前缀

git - 如何获取 dokku 应用程序的 git 远程 URL

r - 不使用命令行从 RStudio 初始化 GitHub 存储库

git - 如何使用 git lfs 进行 rebase ?

git - 相当于 git-archive 直接到磁盘,没有任何 tar 处理

Git 分支模型策略