Git代码提交规范、分支管理和版本号管理

blog.csdn.net-----本人CSDN原创博客链接
目的

  1. 最大程度降低多人合作时的分支冲突。

  2. 减少因合并导致bug重复出现。

  3. 避免因产品发布计划调整造成不必要的工作。

版本号管理

  1. 重大变更升级主版本号(例如硬件版本迭代):1.0.0->2.0.0

  2. 每次功能更新递增次版本号 :1.0.0->1.1.0

  3. Bug修复只增加修订号:1.0.0->1.0.1

代码提交规范

【修改内容】:

  1. 新增xxxxx功能;

  2. 调整xxxxx逻辑;

  3. 去除xxxxx功能

  4. 修复xxxx问题,原因xxxx,解决措施xxxx;

  5. 修复Bug:xxxxxx

【影响范围】:

描述本次修改提交可能影响到的功能和模块

备注:

  1. 代码勤提交,进行完一个重大逻辑调整,开发完一个新功能,修复完一个重大问题都需要进行代码提交;

  2. 修复Bug建议按功能模块进行修复,修复完后进行阶段性提交;

分支管理

分支分类

master

对应最新版本生产环境的的代码,可随时部署生产环境。该类型分支受权限保护,只有管理员由合并权限。分支名称默认为master。

release

对应计划发布的版本代码,可随时部署测试环境。该类型分支受权限保护,只有管理员由合并权限。分支名称默认为release。

feature

日常功能开发使用,对应各个功能模块。分支命名规则为feature-功能名称-负责人。

hotfix

用于修复master分支上的bug,分支名称规则为hotfix-bugId-负责人。

代码管理流程

新增功能流程

feature合并到master后,需要删除feature分支

测试环境修复bug流程

生产环境修复bug流程

多feature情况下存在依赖关系的处理

规范

  1. 项目需要根据项目需求划分功能,根据功能创建不同的feature分支。如功能之间存在依赖还需要明确分支之间的依赖关系。

  2. feature分支只能从master和依赖的feature分支拉取代码,禁止从release和非依赖feature分支拉取分支。

  3. hotfix分支只能从master分支拉取代码,禁止从其他类型分支拉取代码。

  4. 当release分支合并到master分支后,需要根据最新的master新增一个tag存档,同时删除已经合并的feature分支。

  5. release分支的代码只可用于测试,不可部署到生产。

  6. master分支的代码可用于生产。

  7. 禁止除了release之外的分支合并到master。

  8. 请不要提交与代码无关的文件,如由IDEA生成的.iml文件、obj或者build目录等。

  9. 当无法确定如何操作时,请与大家讨论。

  10. 每个人只允许修改自己的分支,或者主动合并其他分支的修改到自己的分支,不允许擅自修改他人分支,有需要可以基于别人的分支,新建分支出来进行修改和验证。

  11. 协同开发时,各分支的修改可以通过提交“merge请求”由项目负责人合并到release分支。

基础代码管理建议

一些通用代码可以抽离成通用的框架或者组件,然后单独项目来维护,以此降低因基础代码变动而导致不必要的工作量。

2 个赞