● 前言
编写此文档目的在于方便多人协作,用于多分支开发管理。(非使用teambition等线上部署平台)
● 分支类型
master: 主分支,主要用来集成代码。
dev:日常开发分支,该分支正常保存了开发的最新代码。
feat:具体的功能开发分支,只与 develop 分支交互。
release:release 分支可以认为是 master 分支的未测试版。比如说某一期的功能全部开发完成,那么就将 dev分支合并到 release 分支,测试没有问题并且到了发布日期就合并到 stable 分支,进行发布。
hotfix:线上 bug 修复分支。
stable:稳定版本分支。
● 分支命名
- 主分支* => master
定义:需求分支的源分支,持续集成稳定分支。
- 需求分支*
定义:一个版本内开发人员的个人分支
命名方式:
版本号/分支类型/需求名称/个人昵称(可选)
例如:
1.3/feat/formative-test
1.3/feat/formative-test/geekftz
- 开发分支*
定义:一个版本内多个开发人员的合并分支,合并冒烟通过后提交到测试分支。
命名方式:
版本号/分支类型
例如:
1.3/dev
- 测试分支*
定义:给测试人员测试的分支,开发分支合并没问题后,提交到此分支。
命名方式:
版本号/分支类型
例如:
1.3/release
- 稳定分支*
定义:每个版本的最终稳定代码。
命名方式:
版本号/分支类型
例如:
1.3/stable
- 修补分支*
定义:线上问题修复。
命名方式:
版本号/分支类型/修补名称
例如:
1.3/hotfix/fix-some-problem
- 优化分支*
定义:功能优化。
命名方式:
版本号/分支类型/优化名称
例如:
1.3/hotfix/fix-some-problem
● 分支冲突
- 需求开发前,向组内成员确认可能会修改的公共文件或他人开发文件,避免同时修改同一份文件导致冲突。
- 造成冲突时,找到冲突代码负责人确认并修改。
- 分支滞前于主分支时,及时同步主分支代码。
● 分支合并
- test分支、prod分支合并代码时,使用git命令来merge,禁止反向merge代码到feat分支、dev分支、hotfix分支等,避免污染开发分支。
- 代码合并前,通知组内成员及时更新集成分支代码(如release分支)。
● 版本tag
- 每次上线无问题后,对当前稳定分支打上tag标记。
- tag描述部分要记录版本迭代详情。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END