1.版本定义

版本号使用x.x.x.x进行定义.

  • 第一个x代表大版本只有在项目有重大变更时更新;
  • 第二个x保留;
  • 第三个x代表常规版本有新求会更新;
  • 第四个x代表紧急Bug修正;
    一个常见的版本号类似于:0.0.10.11

2.系统开发环境

简称 全称 作用
DEV Development environment 用于开发者调试使用
FAT Feature Acceptance Test environment 功能验收测试环境,用于测试环境下的软件测试者测试使用
UAT User Acceptance Test environment 用户验收测试环境,用于生产环境下的软件测试者测试使用
PRO Production environment 生产环境

3. 分支定义

分支 名称 作用
master 主分支 用于生产部署,最新稳定版本,一般由 release 或 hotfix 分支合并,任何情况下不允许直接在 master 分支上修改代码。
release 预上线分支 预上线分支,是develop与master之间的一个缓冲,始终保持与 master 分支一致,一般由 develop 或 hotfix 分支合并,不建议直接在 release 分支上直接修改代码。(UAT)
hotfix 紧急修复分支 紧急分支,名规则为 hotfix- 开头,从master生成,bug修正后自动合并到master和develop并且生成tag;
develop 测试分支 功能验收测试环境,用于测试环境下的软件测试者测试使用,可根据需求大小程度确定是由 feature 分支合并,还是直接在上面开发。,FAT,如果开发工时 < 1d,直接在 develop 开发,如果开发工时 > 1d,那就需要创建分支,在分支上开发。
feature 需求开发分支 用于开发新需求和需要较长时间的BUG修改,(正式环境) 测试通过后,研发人员需要删除 feature- 分支。

4.Commit 日志规范

提交信息一定要认真填写!

建议参考规范:(scope):

比如:fix(首页模块):修复弹窗 JS Bug。

type 表示 动作类型,可分为:

fix:修复 xxx Bug
feat:新增 xxx 功能
test:调试 xxx 功能
style:变更 xxx 代码格式或注释
docs:变更 xxx 文档
refactor:重构 xxx 功能或方法
scope 表示 影响范围,可分为:模块、类库、方法等。

subject 表示 简短描述,最好不要超过 60 个字,如果有相关 Bug 的 Jira 号,建议在描述中加上。

5.开发工作流程:

git flow feature start xxxxx(开始新需求)
在feature/xxxxx分支下进行开发
git flow feature finish xxxxx(开发完成后等待研发经理确认可以完成时执行)
git push origin develop(发布develop分支)
每天工程师都需要git pull origin develop来更新develop分支,然后将develop分支合并到你正在开发得feature/xxxxx分支上来保持代码最新
切记不能直接在develop上进行开发

5.1.常规分支debug流程:

  1. 由研发经理通知相关工程师release版本x.x
  2. git fetch
  3. git checkout -b release/x.x origin/release/x.x(拉回release版本)
  4. git pull release/x.x(更新该分支)
  5. 修改测试中发现的BUG
  6. git push origin release/vx.x(修改完后提交分支)
  7. 循环4-5

5.2.紧急debug流程:

  1. 由研发经理通知相关工程师hotfix分支名称x.x.x
  2. git fetch
  3. git checkout -b hotfix/x.x.x origin/hotfix/x.x.x(拉回hotfix分支)
  4. git pull hfx.x(更新hotfix分支)
  5. 在热修复分支下修改bug
  6. git push origin hfx.x(修改完成,提交分支)
    在日常工作中不能修改master分支下得代码

5.3.研发经理:

开发和DEBUG流程同工程师流程

5.3.1.常规分支debug流程:

  1. git pull origin develop(更新develop分支为最新)
  2. git checkout develop(切换到develop分支)
  3. git flow release start x.x(生成一个release分支)
  4. 通知测试和相关得工程师分支名称
  5. git pull origin release/x.x(最终测试完成后拉回分支最新代码)
  6. git flow release finish x.x(最终修改和测试完成后,结束release版本以供发布)
  7. git push origin develo (发布最新的develop)
  8. git push origin master(发布最终得master分支)

5.3.2紧急debug流程:

  1. git pull origin master(更新master分支为最新)
  2. git checkout master(切换到master分支)
  3. git flow hotfix start x.x.x(生成一个hotfix分支)
  4. 通知相关得工程师和测试人员hotfix分支名称
  5. git pull origin hotfix/x.x.x(最终测试完成后拉回分支最新代码)
  6. git flow hot fix finish x.x.x(最终修改和测试完成后,结束hot fix以供发布)
  7. git push origin master(发布最终得master分支)
    在全部的流程中,工程师必须维护自己的feature分支保证代码最新,减少合并时的冲突。

研发经理必须维护release分支,将最新的hotfix都合并进去,保证代码最新,减少合并时的冲突。

在提交代码时还要注意判断对代码的修改是否是自己的,多用diff工具,多查看log,防止代码回溯

Git在公司内部的使用规范相关推荐

  1. mysql datetime 默认值_老大让我整理下公司内部MySQL使用规范,分享给大家

    作者:白程序员的自习室 链接:https://www.studytime.xin/article/mysql-internal-specifications.html 最近涉及数据库相关操作较多,公司 ...

  2. redis key命名规范_公司内部 Redis 使用规范

    前言 在业务中,会经常使用 Redis 作为后端缓存.存储.如果结构规划不合理.命令使用不规范,会造成系统性能达到瓶颈.活动高峰系统可用性下降,也会增大运维难度.为了避免出现因 Redis 使用不当, ...

  3. 老大让我整理下公司内部 MySQL 使用规范,分享给大家

    点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...

  4. git在公司内部的使用实践(转)

    从2011.10月左右,开始在后台组推行git版本控制,到现在也差不多半年了,也形成了一套基于git flow的副官模式工作流程: 版本定义: 版本号使用x.x.x进行定义,第一个x代表大版本只有在项 ...

  5. git仓库迁移(阿里云git切换到公司内部的gitlab)

    项目刚开始做的时候,因为公司内部的git服务器尚未搭建好,所以使用了阿里云git服务器,目前内部服务器已搭建好,所以git需要完整迁移(完整迁移,就是指,不仅将所有代码移植到新的仓库,而且要保留所有的 ...

  6. 一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本

    jixiaohua发了一篇一个老鸟也发了一份他给公司内部小伙伴整理的路线图.另一份 Android 开发学习路线图.可惜不是MarkDown格式的,所以jixiaohua直接上传的截图,在jixiao ...

  7. GPS公司内部管理系统

    本篇文章的目的是介绍一款软件,软件属于我的业余爱好,此软件是我从学习VB.net后的第一个软件,现在感觉VB6已经生疏了,干脆直接换成.net了,趁过渡的机会为朋友写了这个软件.如有写的不好的地方,请 ...

  8. 使用 satis 搭建一个私有的 Composer 包仓库 在我们的日常php开发中可能需要使用大量的composer包,大部份都可以直接使用,但在公司内部总有一小部份包是不能公开的,这时候我们就需

    使用 satis 搭建一个私有的 Composer 包仓库 在我们的日常php开发中可能需要使用大量的composer包,大部份都可以直接使用,但在公司内部总有一小部份包是不能公开的,这时候我们就需要 ...

  9. Docker搭建公司内部私有云平台 -- Gitlab

    目录 简介 下载并配置Docker环境 拉取镜像并启动Gitlab 将本地代码推送到Gitlab当中 总结 简介 1.什么是gitlab? web平台[网站] gitlab上存储的文件 用户可以将文件 ...

最新文章

  1. mysql only_full_group_by报错的问题(转)
  2. JSR 303 - Bean Validation 介绍及最佳实践
  3. 三星android5.0基带,三星首款5G手机没用高通!问题来了:5G基带哪家强?
  4. Cloud for Customer的前端如何判断自己是运行在PC浏览器还是移动设备里
  5. 修改对象的某个属性的值_什么是类,什么是对象
  6. 美团技术:复杂环境下落地 Service Mesh 的挑战与实践
  7. MySQL,优化查询的方法
  8. php查询mysql语句_PHP之路——MySql查询语句
  9. 解压速度更快, Zstandard 1.4.1 发布
  10. centos网卡错误Device eth0 does not seem to be present
  11. 阿里云成长记的一篇文章《阿里云的这群疯子》
  12. php导出word文件(二)
  13. 游戏制作策划人员指南
  14. Windows更新一直卡在“正在检查更新”如何解决
  15. 基于MFC的平行投影算法
  16. Android 机型适配之百分比适配 ConstraintLayout
  17. ITMars分享|IT运维工作到底是做什么的?
  18. 2016数学建模国赛五天突击笔记
  19. Golang + Laya引擎实现的简易版“球球大作战”小游戏
  20. 如何选用 vector 和 list

热门文章

  1. adguard没有核心 core no_业主装修最后悔的五个地方!没有之一
  2. React Native微信支付开发爬坑之旅
  3. EmberJS路由详解
  4. Citrix俱乐部 - 您的思杰家园
  5. 重提URL Rewrite(3):在URL Rewrite后保持PostBack地址(转老赵blog)
  6. 控制ASP.NET Web API 调用频率与限流
  7. Spring Bean init-method 和 destroy-method实例
  8. 在64位windows下使用instsrv.exe和srvany.exe创建windows服务
  9. 用户IP地址的三个属性的区别(HTTP_X_FORWARDED_FOR,HTTP_VIA,REM_addr
  10. C# new()约束简单介绍