版本定义:

版本号使用x.x.x进行定义,第一个x代表大版本只有在项目有重大变更时更新

第二个x代表常规版本有新需求会更新
第三个x代表紧急BUG修正
一个常见的版本号类似于:0.11.10

分支定义:

  • master分支对应线上版本,上线都使用master;
  • develop是开发分支,用于生成提测分支release,始终保持最新;
  • hotfix是紧急分支,从master生成,bug修正后自动合并到master和develop并且生成tag;
  • feature是私有分支,用于开发新需求和需要较长时间的BUG修改
  • release是提测分支也即常规分支,测试并且bug修改结束后生成该版本tag,后续可以使用git show tagname来查看版本信息或者回滚

工程师:      clone版本库后,首先git flow init初始化工作目录。   开发工作流程:

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

常规分支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

紧急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分支下得代码 研发经理:   开发和DEBUG流程同工程师流程   常规分支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分支)

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

原文来源:转自 http://zeroq.me/p/451  作者: zeroq

【转】git在公司内部的使用实践的更多相关文章

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

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

  2. Git在公司内部的使用规范

    Git在公司内部的使用规范 目录 Git在公司内部的使用规范 1.版本定义 2.系统开发环境 3. 分支定义 4.Commit 日志规范 5.开发工作流程: 5.1.常规分支debug流程: 5.2. ...

  3. 公司内部搭建git服务器

    前言 因为gitHub上的项目是公开的,不适合公司内部项目放在上面,而私人的需要收费,这绝非是我们愿意的.所以找了个跟gitHub很相似,但是又免费的gitLab.现在将搭建gitLab过程记录一下留 ...

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

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

  5. WCF/WPF公司内部订餐程序开发

    WCF/WPF公司内部订餐程序开发 (服务端篇) 上班的第一天,群里讨论关于订餐的问题,所以想到了要不要自己开发一个公司内部的订餐系统呢?方便公司内部员工的订餐,有了想法就简单的实践了下 . 实现还是 ...

  6. PouchContainer 开源版本及内部版本一致性实践

    PouchContainer 开源版本及内部版本一致性实践 为什么要做内外版本一致 对外开源是提升影响力.共建生态的有力手段.在项目对外开源的过程中,首先是将可以开源的部分抽离出来,发布一个“开源版本 ...

  7. Git 在团队中的最佳实践--如何正确使用Git Flow

    我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...

  8. Rafy 领域实体框架 - 公司内部培训视频

    本月给公司内部一个项目做架构重构,其中使用到了 Rafy 框架.所以我培训了 Rafy 领域实体框架的使用方法,过程中录制了视频,方便其他同事查看.现在把视频放到园里来分享下,有兴趣的朋友可以看看,有 ...

  9. 搭建公司内部的NuGet Server

    随着公司业务慢慢的拓展,项目便会越来越来多,很多项目会依赖其他项目DLL,比如一些底层的技术框架DLL引用,还有各业务系统的也有可能会有引用的可能. 项目多,交叉引用多,如果要是有一个DLL更新,那就 ...

随机推荐

  1. APUE 学习笔记(六) 进程控制

    1. fork 创建新进程 fork创建的新进程称为子进程,fork函数调用一次,返回两次. 两次返回的唯一区别就是子进程的返回值是0,而父进程的返回值是新子进程的进程ID 在fork之后是父进程先执 ...

  2. 【CF1029A】Many Equal Substrings(模拟)

    题意:给定一个长度为n的串s,要求构造一个长度最小的使s出现了k次的串,可以重叠 n<=50,k<=50 思路:计算一下前后缀相同长度 #include<cstdio> #in ...

  3. 【CF666B】World Tour(贪心,最短路)

    题意:给你一张有向图,叫你给出四个点的序列a,b,c,d,使得这四个点依次间的最短路之和最大.(4 ≤ n ≤ 3000, 3 ≤ m ≤ 5000) 思路:O(n4)可用来对拍 我们需要O(n2)级 ...

  4. Oracle Dual 表详解

    1.DUAL表的用途Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中--查看当前连接用户SQL> select user from dua ...

  5. 转 Python爬虫入门三之Urllib库的基本使用

    静觅 » Python爬虫入门三之Urllib库的基本使用 1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器 ...

  6. (转):从内核代码聊聊pipe的实现

    来源: http://luodw.cc/2016/07/09/pipeof/ 用linux也有两年多了,从命令,系统调用,到内核原理一路学过来,我发现我是深深喜欢上这个系统:使用起来就是一个字&quo ...

  7. 在 Mac OS X 环境中从源代码编译安装 FFmpeg

    最近因为一个项目要求,需要开发实时视频编解码功能,准备采用 FFmpeg 以 x264 方式进行实时的视频编解码.Windows 以及 Linux 环境下的 FFmpeg 动态库.头文件等资源都非常容 ...

  8. mysql into outfile 导出

    <sql> into outfile 'xxx.txt' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; <sql> 表示 ...

  9. 做IT这几年,我整理了这些干货想要送给你!

    没有一条路是容易的,特别是转行计算机这条路. 松哥接触过很多转行做开发的小伙伴,我了解到很多转行人的不容易,记得松哥大二时刚刚决定转行计算机,完全不知道这些东西到底应该怎么学,每天就是抱着书啃,书倒是 ...

  10. TensorFlow——tensorflow指定CPU与GPU运算

    1.指定GPU运算 如果安装的是GPU版本,在运行的过程中TensorFlow能够自动检测.如果检测到GPU,TensorFlow会尽可能的利用找到的第一个GPU来执行操作. 如果机器上有超过一个可用 ...