Git分支定义
分支说明:
git分支常用的分为master、release、bugfix、develpo四种,以下为每个分支的释义。
-
master分支(线上分支)
- 分支仅有一个,用于存储正式发布的历史,在版本库初始化时自动生成。
- master分支是所有开发活动的核心分支,所有的开发活动产生的输出物最终都会反映到主分支的代码中,master分支应该始终和生产环境保持一致。
- 由于master和生产代码是一致的,没有人包括技术负责人能不允许在master上直接开发,真正的开发代码应当写在其他分支上。
规约:当一个发布分支release-x.y.z确认可发布时,由QA合并到master分支并打标签(x.y.z-state)最终发布。
-
release分支(发布分支)
- 当项目确定好目标版本后,第一件事情就是创建发布分支,发布分支是基于master分支创建而来。
- 发布分支通过要实现的功能约定版本,保证同一份代码由不同的开发组人员开发(特别是多版本并行开发)是可归并且不冲突的。
- 所有与本项目相关的代码都在发布分支中,发布分支以release/开头,如这次的发布分支名为release/x.y.z,x.y.z表示此次目标发布版本。
- 确认release版本后,在release/change.log文件中增加版本x.y.z相对上一版本(x.y.z-1)变更项说明(包括是否实现,实现情况等),在release/sql下新增update-x.y.z-to-x.y.z.sql对应版本的增量升级脚本。
规约:一个发布版本对应一个唯一分支;修复分支由QA合并到master。
-
bugfix分支(修复分支)
- 由master分支产生,系统日常使用中难免会发现缺陷,通常一个缺陷一个对应一个fixbug修订分支。
- bugfix分支是从rmaster分支x.y.z上面分出来的,在对bug修补之后,QA测试通过后再合并进master分支,最终发布到master分支。
- bug id/desc表示修复bug的ID标识(对应Bug缺陷管理系统ID)或描述;[-name-yyMMdd]可选项,表示修复人和修复开始时间。
规约:修复分支由QA合并到master。
-
develop分支(开发分支/功能分支)
- 由release分支产生,可以和所分配给开发同学的功能相对应,可以是一个功能(可大可小)由多个同学(多个分支)开发、或者一个功能一个同学来开发。
- feature id/desc表示功能标识或者描述;[-name-yyMMdd]可选项,表示开发人和开发开始时间。