项目开发时,我所认知的分支命名规范!

464 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情

日常开发中,经历一个项目的上线,会伴随着各种分支的生成、以及会创建大量的分支来确保项目开发、多人开发。那么,怎样命名不同功能的分支呢?

1. 分支类型

首先,在我日常开发中,我一共会见到以下几种类型的分支:

  1. dev
  2. test
  3. pre
  4. master
  5. feature/xxx
  6. feature/epic-xxx
  7. release/xxx
  8. hotfix/xxx
  9. fix/xxx

前四个分支,会一直存在项目中,分别对应着开发环境、测试环境、预发环境和线上环境。

feature/xxxfeature/epic-xxx在日常开发中都是增加新功能,但是feature/epic-xxx是我们的开发主分支。

release/xxx分支是我们的预发布分支,当同一个项目有多个版本同时上线时,就需要该分支的存在了

hotfix/xxx当我们修复线上bug的时候,需要创建

fix/xxx用于日常开发中的bug修复,如在开发中,测试提出的bug,就需要我们使用该分支进行修复

2. 分支关系

介绍完了日常开发中,会遇到的分支,那么它们的关系是怎样的呢? 我们从日常开发一个项目来说!

  1. 我们会首先从master(原来的线上环境)切出本次的开发主分支feature/epic-xxx
  2. 基于我们的开发主分支feature/epic-xxx,根据我们的需求拆分,切出我们每个需求的开发分支feature/xxx进行本次的需求开发。
  3. 每次需求分支开发完成后,我们通过pr(githup)、mr(gitlab)的方式将开发完成的需求合并到开发主分支feature/epic-xxx中。
  4. 所有需求开发完成后,我们将开发主分支feature/epic-xxx合并到开发测试环境分支dev,进行自测。
  5. 自测通过后,我们将开发主分支feature/epic-xxx合并到测试环境test,并通知测试同学提测。
  6. 测试通过后,我们将开发主分支feature/epic-xxx合并到预发分支pre,进行最后一轮的测试。
  7. 预发测试通过后,我们所有的测试阶段就结束了,如果当天上线有多个需求同时上线,则需要创建预发布分支release/xxx,将所有的需求合到该分支。
  8. 将预发布分支release/xxx合并到master,并进行发布。如果是当天只有一个需求发布,将开发主分支feature/ecic-xxx直接合并到master进行发布就可以了。
  9. 如果遇到线上问题,需要紧急修复,我们基于线上分支master切出分支hotfix/xxx进行线上bug修复。
  10. 如果在测试过程中,遇到bug,我们基于开发主分支feature/epic-xxx切出分支fix/xxx进行bug修复。

3. 流程图

文字看起来,比较难看,下面简单画了一个图,供参考!!!

image.png 搭配文字,进行查看。

需要注意的地方,我们在项目开发中,一般情况下是不允许自己合并代码到开发主分支(feature/epic-xxx)、预发布分支(release/xxx)以及线上分支(master),这几个分支只允许mr的方式进行代码合并,并且开发主分支和master都是受保护分支,一般不允许危险操作(强推之类的)。

4. 总结

所有的分支命名都是为了更好的服务项目开发、需求开发。分支命名方式看起来多,但实际操作起来也还好。

每个公司根据自己的情况都会有自己的命名规范。各位可以一起交流一下。上面的是我遇到的分支命名规则,并且在日常开发中如何使用来维护多人开发,确保不会出错。

日常开中git的使用,以及一整套项目开发流程,可以看下我其他的文章,有好的idea可以一起讨论下。如果有更好的见解,欢迎指正!!!

感谢老板.gif