热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

gitflow在实践中的一些疑问

假设以下场景,A 和 B 都开发一个功能,各自从 dev 切一个 feature 出来开发,然后开发完提测的话先合并到 dev,然后就到 release 提测改 bug,但是现在有个问题,a 和 b

  • 假设以下场景,A 和 B 都开发一个功能,各自从 dev 切一个 feature 出来开发,然后开发完提测的话先合并到 dev,然后就到 release 提测改 bug,但是现在有个问题,a 和 b 都差不多时间开发完,然后都合并到 dev 分支了,-。

  • 这时候,a 的功能测试没问题,b 的测试有问题,这时候想只上 a 的功能,排除 b,但是 dev 已经包含了 a 和 b 的代码,这时候一般要怎么办?

第 1 条附言  ·  106 天前

谢谢大家回复,总结如下,不能完全用 gitflow 这个流程,我也看过 aoneflow 流程,也是有改良的,我觉得小型团队可以这样做
- 1 新功能开发还是要用 feature 开发,开发完并不能马上合并 dev,提测的话直接合并到 test 分支,多个 feature 就一起合并到 test,让测试验证,验证有 bug,然后自己再各自的 feature 修好,然后再合并到 test 分支(基于 master ),test 分支没问题直接上正式 en,正式没问题的话再把 feature 分支合并到 dev 和 master,保证 feature 是干净的,不参合任何代码,如果 a 和 b 到时候有谁上不了,直接用 master 分支拉一个副本出来然后合并到 feature 分支发版

- 2 .如果这时候正式环境有 Bug,而你又再 feature 上,按照 gitflow 流程到 master 拉个分支补丁处理,(这时候又个疑问,提测是否合到 test 分支上还是拉上一次的 release 分支)然后处理完在合并到 dev 和 mater

- 3.test 分支最好有一个自动检查,当 feature 分支 push 变更时,能够自动重新合并分支( master+featrueA+featureB ),部署就变得很简单

- 4.dev 分支好像变得没什么用

- 5. 还有一种情况就是,featureA 和 featureB 开发的时候,有一些公共代码要开发,这时候怎么办,因为 featureA 和 B 到要用到,我想到的时直接到 dev 提交这些公共的部分,然后 featureA,B 分别合并 dev 分支的公共代码,然后再把 dev 分支关上,不允许任何人提交,这样最保险

- 6.我能想象开发遇到的情况都说了,不知道,我说的对不对,大家给点意见

我司是 feature 直接合到 master,CI/CD 检测到 master 有更新就自动部署到 dev 环境,并打 git tag
生产部署取 git tag 对应的代码版本

对于你这种情况,我们会选择都不上线,等 bug 修好再一起上。很紧急的上线的话,那么就先把 b 的代码改回去,这就相当于只上线了 a 。

话说你们应该也有个 release 用的分支吧,把 a 相关的提交 cherry-pick 到 release 用的分支,就可以把 b 撇出去了


推荐阅读
  • 2018 HDU 多校联合第五场 G题:Glad You Game(线段树优化解法)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6356在《Glad You Game》中,Steve 面临一个复杂的区间操作问题。该题可以通过线段树进行高效优化。具体来说,线段树能够快速处理区间更新和查询操作,从而大大提高了算法的效率。本文详细介绍了线段树的构建和维护方法,并给出了具体的代码实现,帮助读者更好地理解和应用这一数据结构。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 为了优化用户体验,本文探讨了如何调整下拉菜单的宽度。通过合理设置宽度,可以提升界面的美观性和易用性。文章提供了具体的代码示例,帮助开发者实现这一目标。例如,可以通过 CSS 或 JavaScript 来动态调整下拉菜单的宽度,确保其在不同设备和屏幕尺寸上都能保持良好的显示效果。 ... [详细]
  • 在开发过程中,为了确保代码的实时保存,我们常常会对某个功能进行多次提交。然而,当功能趋于稳定时,将这些分散的提交记录合并为一次提交,可以提高代码仓库的整洁度和可维护性。本文将详细介绍如何使用 Git 巧妙地合并多次提交记录,帮助开发者简化历史记录管理。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 在探讨P1923问题时,我们发现手写的快速排序在最后两个测试用例中出现了超时现象,这在意料之中,因为该题目实际上要求的是时间复杂度为O(n)的算法。进一步研究题解后,发现有选手使用STL中的`nth_element`函数成功通过了所有测试点。本文将详细分析这一现象,并提出相应的优化策略。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 计算机视觉领域介绍 | 自然语言驱动的跨模态行人重识别前沿技术综述(上篇)
    本文介绍了计算机视觉领域的最新进展,特别是自然语言驱动的跨模态行人重识别技术。上篇内容详细探讨了该领域的基础理论、关键技术及当前的研究热点,为读者提供了全面的概述。 ... [详细]
  • 如何精通编程语言:全面指南与实用技巧
    如何精通编程语言:全面指南与实用技巧 ... [详细]
  • Vue ElementUI 实现邮箱地址自动补全功能详解 ... [详细]
  • 在Kohana 3框架中,实现最优的即时消息显示方法是许多开发者关注的问题。本文将探讨如何高效、优雅地展示flash消息,包括最佳实践和技术细节,以提升用户体验和代码可维护性。 ... [详细]
  • 如何在C#中配置组合框的背景颜色? ... [详细]
  • Java中不同类型的常量池(字符串常量池、Class常量池和运行时常量池)的对比与关联分析
    在研究Java虚拟机的过程中,笔者发现存在多种类型的常量池,包括字符串常量池、Class常量池和运行时常量池。通过查阅CSDN、博客园等相关资料,对这些常量池的特性、用途及其相互关系进行了详细探讨。本文将深入分析这三种常量池的差异与联系,帮助读者更好地理解Java虚拟机的内部机制。 ... [详细]
  • MyISAM和InnoDB是MySQL中最为广泛使用的两种存储引擎,每种引擎都有其独特的优势和适用场景。MyISAM引擎以其简单的结构和高效的读取速度著称,适用于以读操作为主、对事务支持要求不高的应用。而InnoDB引擎则以其强大的事务处理能力和行级锁定机制,在需要高并发写操作和数据完整性的场景下表现出色。选择合适的存储引擎应综合考虑业务需求、性能要求和数据一致性等因素。 ... [详细]
author-avatar
阳光卐誓言
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有