github/gitlab 多人协同 分支管理

● 前言

编写此文档目的在于方便多人协作,用于多分支开发管理。(非使用teambition等线上部署平台)

● 分支类型

master: 主分支,主要用来集成代码。
dev:日常开发分支,该分支正常保存了开发的最新代码。
feat:具体的功能开发分支,只与 develop 分支交互。
release:release 分支可以认为是 master 分支的未测试版。比如说某一期的功能全部开发完成,那么就将 dev分支合并到 release 分支,测试没有问题并且到了发布日期就合并到 stable 分支,进行发布。
hotfix:线上 bug 修复分支。
stable:稳定版本分支。

● 分支命名

  1. 主分支* => master

定义:需求分支的源分支,持续集成稳定分支。

  1. 需求分支*

定义:一个版本内开发人员的个人分支

命名方式:
版本号/分支类型/需求名称/个人昵称(可选)

例如:
1.3/feat/formative-test
1.3/feat/formative-test/geekftz

  1. 开发分支*

定义:一个版本内多个开发人员的合并分支,合并冒烟通过后提交到测试分支。

命名方式:
版本号/分支类型

例如:
1.3/dev

  1. 测试分支*

定义:给测试人员测试的分支,开发分支合并没问题后,提交到此分支。

命名方式:
版本号/分支类型

例如:
1.3/release

  1. 稳定分支*

定义:每个版本的最终稳定代码。

命名方式:
版本号/分支类型

例如:
1.3/stable

  1. 修补分支*

定义:线上问题修复。

命名方式:
版本号/分支类型/修补名称

例如:
1.3/hotfix/fix-some-problem

  1. 优化分支*

定义:功能优化。

命名方式:
版本号/分支类型/优化名称

例如:
1.3/hotfix/fix-some-problem

● 分支冲突

  1. 需求开发前,向组内成员确认可能会修改的公共文件或他人开发文件,避免同时修改同一份文件导致冲突。
  2. 造成冲突时,找到冲突代码负责人确认并修改。
  3. 分支滞前于主分支时,及时同步主分支代码。

● 分支合并

  1. test分支、prod分支合并代码时,使用git命令来merge,禁止反向merge代码到feat分支、dev分支、hotfix分支等,避免污染开发分支。
  2. 代码合并前,通知组内成员及时更新集成分支代码(如release分支)。

● 版本tag

  1. 每次上线无问题后,对当前稳定分支打上tag标记。
  2. tag描述部分要记录版本迭代详情。
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享