专栏首页程序生涯Git在公司内部的使用规范

Git在公司内部的使用规范

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,防止代码回溯

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://blog.csdn.net/Jacksun_huang复制
如有侵权,请联系 yunjia_community@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Git Flow规范在工作中的使用流程

    我们在进行项目开发的时候,为了更好的管理项目、追溯项目历史,我们会采用代码管理。一般常用的有 git svn 等,但是项目的开发、测试、上线往往都是有很多工作,...

    憧憬博客
  • 适合中小型公司的Mysql数据库使用规范

    这个是某公司技术基础建设的一部分,本次提出秉着分享的精神跟大家一起探讨探讨,欢迎互相切磋~

    IT大咖说
  • 大型互联网公司使用的数据库设计规范

    2、 数据库命名规范,统一:hs_xxxx;表名不超过40个字符(即最大只能40个字符)

    阿泽
  • 【推荐】git commit 规范和如何在 commit 里使用 emoji

    大家好,我是桃翁,今天给大家带来的是关于 git commit 那些事儿,希望大家喜欢。

    桃翁
  • 惊讶!我定的日志规范被CTO在全公司推广了

    日志文件提供精确的系统记录,根据日志最终定位到错误详情和根源。日志的特点是,它描述一些离散的(不连续的)事件。例如:应用通过一个滚动的文件输出 INFO 或 E...

    猿天地
  • 在公司制度不规范的情况下,如何做好测试工作?

    遇到这个好机会你还在等什么?如果说这个公司已经足够好了,那他还请你过来做什么?你的能力还足以让公司有更高的提升么?

    软件测试君
  • 公司内网,无法使用yum在线下载,肿么办?

    1 配置上网代理   编辑/etc/yum.conf,增加如下属性: proxy=你的代理地址 proxy_user=你的用户名 proxy_passwor...

    用户1154259
  • 初创公司该如何做好持续集成和部署

    作者简介 裴双才,Geekwolf,现MAKA运维负责人,博客: http://www.simlinux.com 《FastDFS分布式存储实战》作者,《An...

    DevOps时代
  • 公司用的 MySQL 团队开发规范,太详细了,建议收藏!

    数据库对象是数据库的组成部分,常见的有以下几种:表(Table )、索引(Index)、视图(View)、图表(Diagram)、缺省值(Default)、规则...

    用户1516716
  • 管理-搭建私服(nexus)来统一管理jar包

    详细搭建和介绍请参考博客:https://www.cnblogs.com/zishengY/p/7794923.html

    秋日芒草
  • Dubbo远程调用之公司内部提供的服务

    一家对外提供服务的公司,例如百度,腾讯,阿里,京东,58 同城等,公司内部有多个事业群,事业部门,每个事业部门内部又有若干个子部门,子部门里面有多个不同的小组负...

    马士兵的朋友圈
  • 【企业安全】企业安全项目-Github信息泄露专项

    aerfa
  • 我第一次做CTO的经历

    黄小怪
  • 实习生,你不清楚的项目开发流程和规范?

    一般一个项目部署的环境至少有本地环境、dev开发环境、fat环境、线上环境,只是最最基本的几个环境。

    benny
  • Spring Cloud生态的配置服务器最全对比贴

    本文从社区活跃度、产品特点、成功案例、产品缺点等维度,全方位对比Spring Cloud Config、Apollo、Nacos、Disconf、Spring ...

    用户1516716
  • 创业公司都在使用的3款Python库

      只需简单地修改Config文件,用户就可以按自己的意图来以静态文件方式部署Web应用,而不必依赖于Nginx、亚马逊S3等外部服务。Whitenoise能对...

    统计学家
  • RobotFrameWork接口设计规范

    继前面一章《RobotFramework环境搭建》介绍了在本地如何将接口自动化实施过程所需要的基础环境搭建好,在这里假设大家都已经知道环境如何搭建了,如果不清...

    测试开发技术
  • 你必须要知道的git rebase

    git add, git commit, git push, git stash, git pull, git merge, git log

    Karl Du
  • 在使用Git时你应该这样提交代码

    目前大部分公司都在使用 Git 作为版本控制,每个程序员每天都要进行代码的提交。很多开发者也包括我自己,有时候赶时间或者图省事,就这么提交:

    码农小胖哥

扫码关注云+社区

领取腾讯云代金券