Git代码管理操作规范

git 分支管理

Posted by Deadline on August 8, 2019

前言

为了提高团队协作效率,基于 git-flow 规范制定了此代码管理操作规范,此规范主要从分支说明、 协作流程图解、常用约定和 git 工具等方面进行介绍。如果有疑问和建议欢迎讨论。

分支说明

master

  • 主分支 , 产品的功能全部实现后 , 最终在master分支对外发布
  • 该分支为只读唯一分支 , 只能从其他分支(release/hotfix)合并 , 不能在此分支修改

develop

  • 主开发分支 , 基于master分支克隆
  • 包含所有要发布到下一个release的代码 该分支为只读唯一分支 , 只能从其他分支合并
  • feature功能分支完成 , 合并到develop(不推送) develop拉取release分支 , 提测
  • release/hotfix 分支上线完毕 , 合并到develop并推送

feature

  • 功能开发分支 , 基于develop分支克隆 , 主要用于新需求新功能的开发
  • 功能开发完毕后合到develop分支(未正式上线之前不推送到远程中央仓库)
  • feature分支可同时存在多个 , 用于团队中多个功能同时开发 , 属于临时分支 , 功能完成后可选删除

    release

  • 测试分支 , 基于feature分支合并到develop之后 , 从develop分支克隆
  • 主要用于提交给测试人员进行功能测试 , 测试过程中发现的Bug在本分支进行修复 , 修复完成上线后合并到develop/master分支并推送(完成功能) , 打Tag
  • 属于临时分支 , 功能上线后可选删除

    hotfix

  • 补丁分支 , 基于master分支克隆 , 主要用于对线上的版本进行BUG修复
  • 修复完毕后合并到develop/master分支并推送 , 打Tag
  • 属于临时分支 , 补丁修复上线后可选删除

协作流程图解

历史分支

功能分支

发布分支

维护分支

常用约定

代码提交约定

  • 尽可能说明本次提交内容

分支命名约定

  • 主分支 master 和 develop 名称不变
  • 其他分支采用 分支名称/英文简称-处理人-日期 feature/wechatMiniProgramPay-zhongjian-20190710
  • / 为文件夹形式,当分支太多的时候会很乱,文件夹的形式能很好的防止这种情况

tag 命名约定

  • 只有当 release 分支合并至 master 分支上时才需要打 tag
  • A 一般以 x.y.z 方式命名,例如 0.1.0,详细说明可以参考 语义化版本 2.0.0
  • B 也可以直接使用分支名称作为 tag。

个人见解 ,x.y.z方式适合客户端作为版本号发布,但是对于服务端来说版本号的概念比较弱。个人喜欢 B 方式打标签。

管理工具 SourceTree

  • 支持 Windows 和 Mac OS X
  • 免费
  • 用户图形界面对初学者友好
  • 支持 git-flow
  • 使用 https 协议时能保存密码

There are no comments on this post.