你的位置:首页 > ASP.net教程

[ASP.net教程]分支规范


一、目的

 我们制定分支规范,意在实现以下目标:

  1. 减少沟通成本:开发者可以很清晰地知道需要修改的代码位于哪个分支。
  2. 减少 bug 隐患:避免因分支合并导致 bug。
  3. 维护线上稳定:通过一定的流程规范,保证线上代码安全。
  4. 灵活:支持多版本同时开发、同时发布。
  5. 简洁:用最少的分支解决问题,避免反复创建、合并分支,节约操作时间。

二、主分支: master

主分支(master)用于存放最新的稳定版本。

正式发布时:在主分支上创建标签(tag)。如果发布非常频繁可以不加。

标签的命名规范为:release-v版本号-日期(如 release-v0.0.1-20161010)。业务项目可以不加版本号;框架、工具项目可以不加日期。

release-xx 分支:如果需要同时维护多个发布版本(比如有些框架在发布新版同时还会更新老版),则需要基于 master 分支创建名为 release-v版本号前缀(如 release-v1.x)的分支,之后 master 分支持续更新为最新稳定版,release-xx 分支则持续更新为对应版本的最新稳定版。所有 release-xx 分支和 master 分支地位相同,master 相当于是 release-latest 分支。

三、开发分支: dev-xx

dev 分支用于存放最新代码(可能包含未测试的代码),只有需要正式发布时才会合并到 master 分支。

如果项目对稳定性要求不高(比如小项目、练习用的代码),则可以不建 dev-xx 分支,而直接在 master 分支修改。

开发时:基于 master 分支创建名为 dev-v版本号(如 dev-v0.0.1)的分支。业务项目可以不加版本号,固定为 dev 分支。

开发完成后发布测试:直接发布 dev 分支到测试环境。如果测试出现 bug 则在 dev 分支继续修复。

测试完成后正式发布:将 dev 分支合并到 master 分支。然后发布 master 分支。

如果需要同时开发多个版本,可以从 master 创建多个不同版本号的 dev-xx 分支。每次发布后其它 dev-xx 分支需要从 master 分支合并最新的改动。

四、修复分支: bugfix-xx

发布后线上发现 bug 时:

  • bug 影响不大:建议在 dev-xx 分支中修复,等待下次发布时修复。
  • bug 影响很大:将线上代码回滚到 master 分支的上一个标签(或最近的 release-xx 分支)。
  • bug 影响一般:从 master 分支创建名为 bugfix-时间(如 bugfix-20161010190000) 的分支,在此分支修复 bug,修复完成后直接将 bugfix-xx 分支发布上线。如果上线后 BUG 已解决则将 bugfix-xx 分支合并到 master 分支并删除 bugfix-xx 分支。如果 bug 仍未解决,则继续在此分支修复 bug 直到解决。

五、构建分支: build-xx

有些项目需要预编译(压缩、优化)代码才能发布上线,所有分支在发布时都会先合并到同名的 build-xx 分支。

如 dev-0.0.1 在发布测试环境时,需要先合并到 build-dev-0.0.1 分支,然后经过预编译后发布 build-dev-0.0.1 分支。

如 dev-0.0.1 在发布正式环境时,需要先合并到 master 分支,然后合并到 build-master 分支,然后经过预编译后发布 build-master 分支。

build-xx 分支可以使用构建工具自动维护。大部分情况开发者不需要关心此分支,除非发现因自动构建导致的 bug 时,开发者可以切到此分支查找问题。

六、其它分支

根据项目实际需求,可以创建其它分支,如 github 页面需要的 gh_pages 等分支。

七、总结

分支总共有:master、dev-xx、release-xx、bugfix-xx、build-xx 五类。大部分项目只需创建前面 2 个分支,其余的根据需要再建。开发者平时只需维护 dev-xx 分支。dev-xx 的代码只能发布到测试环境,不能直接发布上线。

 




出发去泰国旅游泰国旅游报价到泰国旅游团购去泰国旅游攻略泰国六日游行程安排参考海南三亚春节旅游攻略?2015年春节三亚旅游路线? 番禺百万葵园冬季景色怎么样?百万葵园冬天有什么特色? 过年三亚旅游怎么样?三亚有哪些好玩的地方? 广州百万葵园现在多少钱?番禺百万葵园门票最新价格? 惠州小桂村旅游去哪玩?惠州大亚湾小桂村有什么好玩的? 仓桥直街 遍地风流是绍兴 大亚湾小桂旅游攻略?小桂景点好玩吗? 惠州大亚湾旅游吃在哪里?大亚湾哪里有烧烤? 东部华侨城水公园面积多大?深圳东部华侨城水公园人多吗? 东部华侨城水公园是温水还是冷水?深圳东部华侨城水公园介绍? 东部华侨城水公园好玩吗?深圳东部华侨城水公园怎么样? 阳山小桂林漂流价格?小桂林竹筏漂流几个人的? 骑着大象去营地 帐篷酒店很野性[三] 广州香格里拉大酒店推出“香传秋韵”系列月饼[二] 秦始皇陵兵马俑在哪?怎么去? 珠海石景山观光索道费用?石景山观光索道多少钱一个人? MJ01-0603S5YC Datasheet MJ01-0603S5YC Datasheet MJ01-0603SGC Datasheet MJ01-0603SGC Datasheet MJ01-0603SYC Datasheet MJ01-0603SYC Datasheet 石林在什么地方 石林在什么地方 石林在什么地方 成都大熊猫基地门票 成都大熊猫基地门票 成都大熊猫基地门票 龙门石窟在哪 龙门石窟在哪 龙门石窟在哪