文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

多人协作如何管理Git分支

2024-12-03 08:09

关注

关于Git分支管理,每个团队在不同阶段都有自己的管理策略,最近我们团队也争论过这个问题。

据了解,我们团队以前采用的是版本分支管理策略,也就是每次上线新版本都会创建一个新的版本分支,而新的需求开发也从当前最新的版本分支迁出一个新的需求分支开发,线上bug则在版本分支上修改然后发布。

在我接手项目的时候发现一个问题,由于拆分的微服务项目以及组件不在同一个project里面,我拉取全部项目代码后全部切换到master分支居然构建失败,提示xx类没有xxx方法,然后我全部切换到test分支情况依旧。后面同事找出的原因是新版本的代码没有合并到master分支。显然,版本分支成了项目的主分支,而master分支相当于一个弃用的分支。

由于项目目前全部容器化部署,并且走自动化部署,因此版本分支已经不适用了,目前采用的策略是线上master分支,测试test分支,当开发完成需求后将需求分支合并到test分支交给测试的同事去测试,测试完成后由开发合并到master分支部署。

这种策略同样存在问题,首先,开发不应该有权限修改master分支,其次,多个需求一同合并到master分支出现冲突会影响发布。

在发布新版本之前,我们应该确保已经解决所有代码冲突问题,因此应该多出一个分支,只有该分支的代码可以直接合并到master分支,所有需要在下个版本发布的需求分支通过测试后都应该先合并到该分支,在上线前再由项目负责人发起合并到master的请求,由部门主管处理合并请求,或者由项目负责人直接处理合并。

我并不看好自动触发构建发布生产环境这种策略(代码一合并到master分支就自动发布),因为往往在发版之前都需要做一些准备,等所有准备就绪后再按顺序去发版,例如数据库表结构的修改、配置文件的修改(开发人员不应该拿到生产环境的配置)。

此外,自动触发构建发布生产环境也不支持蓝绿/灰度发布,当然了,我们项目目前也不需要蓝绿/灰度发布,所以说,每个团队在不同阶段都有适合自己的管理策略。

以下分享笔者前后就职的三个公司当时采用的分支管理策略。

目前我们团队使用的分支管理策略

开发人员开发需求需创建需求分支,需求开发完成后合并到test分支,测试人员在test分支上测试。

测试人员提交bug后,开发人员需切回需求分支修复bug,修复完成后合并到test分支,如此往复。

需求测试通过后,由开发合并到master分支发布。

线上bug直接在master分支修改,修改完成在master分支发布。

这种方案直接在master分支修复线上bug绕过了测试,而且每个开发都有master分支的提交权限,存在很大的风险,因此这种方案只适合小团队。

老东家使用的分支管理策略

开发人员开发需求需创建需求分支,开发完成后由测试人员切换到该需求分支测试,或者批量测试的话就将多个需求分支合并到test分支。

测试人员提交bug后,开发人员需切回需求分支修复bug,修复完成后再通知测试人员切换到该分支测试,或是合并到test分支测试,循环往复。

需求测试通过后,由开发人员/开发组长将需求分支合并到dev分支,在约定的版本上线时间由开发组长提交将dev分支合并到master分支的请求,由主管合并分支。

最后,每次发版之后都将dev切出一个relese-${version}分支,线上bug在此分支修改,并且修改完成后测试需切到该分支测试,测试完成后就可以直接合并到master分支发布。

前前公司使用的分支管理策略

无分支管理策略,没有测试环境,需求在需求分支开发,开发完成后由开发自己测试,觉得没问题了就直接合并到dev分支,然后发布。master分支也是弃用的。有些简单的需求以及线上bug都是直接在dev分支改动。(没有测试就直接上线,非常的恐怖)。

本文转载自微信公众号「Java艺术」,可以通过以下二维码关注。转载本文请联系Java艺术公众号。

 

来源:Java艺术内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯