文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

你们公司分支策略是什么样的

2024-12-03 16:23

关注

本文转载自微信公众号「虞大胆的叽叽喳喳」,作者虞大胆  。转载本文请联系虞大胆的叽叽喳喳公众号。 

在基于git的工作流中,master一般是做持续集成的,开发人员在特性分支开发,经过测试后,就会merge到master做集成测试,测试通过就表示master可部署了。

可现实情况下,特性分支自测没问题,不代表就真的没问题,测试人员还没测试呢,所以此时的master分支其实是没准备好的(从master特定commit id到生成分支其实是有一定难度的)

我们目前的做法,在master分支之前还有一个SIT系统集成分支,也就是说这个分支是专门给QA人员测试的,测试没问题后,将特性分支的代码合并到pre分支,仿真环境如果没问题,再将特性分支合并到master分支,然后进行发布。

SIT分支相当于做集成测试了,保证了master的代码是相对可靠的。

那什么代码合并到SIT分支呢?不管几个项目,也不管这些项目具体的上线时间,特性分支都可以合并到SIT分支,然后统一给QA人员测试(相当于提前测试多个项目了),正因为这样,上线的时候无法从SIT分支merge到master分支。

这种工作流多了一个步骤,必然会有副作用,首先merge到SIT分支的时候,如果有冲突,SIT分支不应该解决冲突,因为SIT分支只是为了测试,不会上线的,所以不应该解决冲突;其次很多人说为了避免有冲突,那么我就经常性的将SIT分支上的代码merge(也就是pull)到特性分支,这也非常不好,因为这个特性分支就不隔离了。所以正确的做法,如果merge到SIT分支产生冲突,应该自己去解决冲突,可如何找到和那个分支冲突呢?

还有SIT分支和master分支因为时间点和作用不一样,没有必要保持代码是同步,可pre分支和master分支理论上应该保持同步,上线的时候没有选择merge SIT分支到master分支的原因是cherry-pick还是有一定复杂度的,merge特定commit id也是有复杂度的,所以我们选择从特性分支合并到master,那必然要思考一个问题,pre分支测试通过代表master分支测试通过吗?如果pre到master是一个fast forward,理论上不用再重复测试。

还有一种做法和我们的做法类似,就是有一个隐形的SIT分支,特性分支一旦提交到远端,就自动merge到SIT分支,查看是否有冲突,如果有冲突,就提醒开发者去解决,从而保障能够持续集成。

最后说说特性分支,我们还喜欢根据迭代周期去弄一个大分支,实际上这个大分支包含了很多子功能,也就是说可以拆分为多个子分支,那这两种方式有什么优缺点呢?

如果在一个大分支,能够减少一些冲突,但做不到隔离了,如果频繁的pull,是选择merge还是rebase呢?应该选择merge,推送到远端的分支不建议做rebase,会产生很多问题。其实既然选择了一个大分支,那git历史记录必然会很难看的,基本没有追朔性。如果实在要使用一个大分支,建议不要太频繁的提交到远端,尽量做好自测再提交。SIT部署的环境(QA)是为了测试人员测试的,应该保障一定的稳定性,它们不是给开发人员调试用的。

建议还是子分支,一方面说不定有一天就上线部分功能,子分支就合适了;另外子分支也能做到隔离;当然可能会遇到很多merge冲突的问题,这时候就需要自己甄别与那个分支发生冲突了(目前没有想到办法)。

git工作流有多种选择,主要看整个团队对git的理解程度,并行项目数量,CI/CD方式等等,没有绝对的好坏,只要能说得通,没有明显的缺点,那就是好的工作流。

 

来源:虞大胆的叽叽喳喳内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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