1. Git是什么?

作为一名程序猿,我相信大家都或多或少接触过git--分布式版本控制软件。

有人说,它是目前世界上最先进的分布式版本控制系统,我想说,是否最先进不知道,但确实好用,实用。

作为一款风靡全球的软件,不得不提提它的历史:

--由Linus Torvalds创作,并与2005首次发布,最初仅是为更好的管理Linux核心开发而设计,不曾想太优秀,如今已被广为使用。

2. 我们可用Git来干什么?

作为一款分布式版本控制软件,听上去高端大气上档次,但说白了,就是一款项目代码管理工具。

3. 如何正确使用Git?

既然Git如此好用,理所当然,目前全球各大公司大多采用该软件作为项目代码的管理工具。

犹记得当初刚从学校进入企业,发现原来公司的代码是这样管理的,看上去猴塞雷的样子。当然,伴随着操作小心翼翼,生怕一顿操作猛如虎,犯错回家卖红薯。。

作为一个接触多年的老手,则肆无忌惮,斧削刀砍,好不快活。讲真,那会羡慕的不要不要~~

其实,只要懂得正确操作流程,你也可以大刀阔斧,那么下面的知识,你值得拥有!!

4. 项目管理

好了,闲话就此打住,还是得来点干货。

我相信大家一定听过一句话:作为一款稳定的产品,我们一定要保证项目运行的四个九。咋听之下,一脸狐疑。其实,意为保证项目运行99.99%(至于那遁去的1,你懂的),即高可用的又一说法。

为保证项目高可用,产品上线必须严格遵守一定的流程。

这里提几个概念,可能与你所在公司说法不太一样,但我相信都是换汤不换药,领略精髓即可,大可不必咬文嚼字。

Git 分支:

  • master--该分支一般作为备份使用,通常为最稳定代码。
  • dev--该分支作为开发分支,持续开发,持续集成。
  • feature--该分支作为需求开发分支,生命周期由需求创建到完成。
  • release--该分支作为版本发布分支。
  • hotfix--该分支作为bug修复分支,发布版本存在重要缺陷时,拉出该分支,并由该分支发布hotfix版本。

部署环境:

  • DEV/Local环境--本地环境。一般而言,程序猿接到一个新的需求时,会在本地开发,完成后自己测试,这里称为本地环境(当然财大气粗的公司可能会专门准备一套DEV环境用于测试)。
  • QA环境--与产线环境配置一致(单实例)。需求本地测试通过后,部署到QA环境中,由QA进行测试。由于QA环境部署频繁,如果多实例部署会造成资源和时间上的浪费。
  • BTS环境--与产线环境完全一致(分布式)。在版本发布前,部署到BTS环境,该环境和产线环境完全一致。一般会在版本发布前3天部署到该环境,做UAT(用户接受测试)。
  • PROD环境--分布式系统。产线环境。

4.1 新需求:

开发流程:

  • 当团队接到新的需求时,一般会安排某个或某几个程序猿来开发该功能。在了解完需求和设计后,开发会拉出对应的feature分支,所有该需求的代码都将在该分支上进行开发。
  • 当开发完成,为验证功能可行性,程序猿需要在本地进行对应测试,通过后将代码合入到dev分支。
  • 利用Jenkins从dev分支中进行打包,然后部署到QA环境中,由团队中专职QA进行功能测试。测试不通过,上述步骤重复。测试通过,该需求结束。

这里,有些小伙伴则会问,为什么本地测试通过了,而在QA环境中却不通过呢?

通常,一个团队都会同时接多个需求,大家的代码都会并行往dev中合入,这时就有可能影响到其他的需求,或者被其他需求影响,导致bug。

Git详细流程:

4.2 发布新版本

开发流程:

  • 当发布新版本时,以时间或需求结束点为节点,打对应tag(方便以后回溯)。从该tag拉出release分支,Jenkins从release分支打包。
  • 将包部署到QA环境,由专职QA进行测试。
    • 如果测试不通过,从release分支中拉出hotfix分支,在hotfix分支上进行bug修复,本地测试完毕,Jenkins从hotfix分支打包,部署到QA环境测试。
    • 测试通过,下一步。
  • 将包部署到BTS环境,由专职QA进行测试。测试不通过,判断当前分支,若为release分支,则从该分支拉出hotfix分支,在hotfix修复bug后;若为hotfix分支,则直接修改bug,本地测试完毕,Jenkins打包hotfix分支,部署到QA测试。
  • 将包部署到PROD环境,由专职QA进行测试,测试不通过, 判断当前分支,若为release分支,则从该分支拉出hotfix分支,在hotfix修复bug后;若为hotfix分支,则直接修改bug,本地测试完毕,Jenkins打包hotfix分支,部署到QA测试。

Git详细流程:

上述的内容,仅为个人多年开发经验总结,或许与标准流程有一定的出入。

如有错误之处,忘各位大佬不吝斧正。


作者:吴家二少

博客地址:https://www.cnblogs.com/wu-kai/

本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接


我与Git的那些破事(上)--代码管理的更多相关文章

  1. 我与Git的那些破事--代码管理实践

    1. Git是什么? 作为一名程序猿,我相信大家都或多或少接触过git--分布式版本控制软件. 有人说,它是目前世界上最先进的分布式版本控制系统,我想说,是否最先进不知道,但确实好用,实用. 作为一款 ...

  2. 我与Git的那些破事系列(下)--分支模型

    在上篇文章中,我提到了Git的基本概念和一些本人实际项目中的总结.然而,最近读了一片Vincent Driessen写的一篇文章,觉得他总结的太好了,忍不住站在他的肩膀上写一篇自己的理解.文章的连接放 ...

  3. 我与Git的那些破事(下)--分支模型

    在上篇文章中,我提到了Git的基本概念和一些本人实际项目中的总结.然而,最近读了Vincent Driessen写的一篇文章,觉得他总结的太好了,站在他肩膀上忍不住将自己的理解分享出来.Vincent ...

  4. 记录一次使用git工具拉取coding上代码密码账号错误的经历

    1.忘记密码 1.另外的一个位置

  5. git创建远程项目并进行代码管理及相关命令

    1.windows下载Git     https://git-scm.com/downloads 然后一路点击安装 2.登录github,点击右上角创建仓库 3.在本地项目根目录下 输入如下命令 ss ...

  6. window7下搭建本机版git并在本机上进行代码管理

    1.安装软件:Git-1.9.2-preview20140411.exe与TortoiseGit-1.8.8.0-64bit.msi 2.在本机任一目录下执行如下操作: 3.创建一个test.java ...

  7. 代码管理必备-----git使用上传码云

    作为一个程序员,你要学会代码的管理,这是一个最基本的修养,就像是一个剑客的剑谱,代码管理,目前流行的是svn和git,但是很不好的是git如果没有插件的话,很多人都不会用git bash 来实现自己的 ...

  8. Git之创建仓库并上传/更新项目版本

    1.Git配置 使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名,每次提交记录里都会包含这些信息.使用git config命令进行配置: $ git config ...

  9. Git学习系列之Windows上安装Git之后的一些配置(图文详解)

    不多说,直接上干货! 前面博客 Git学习系列之Windows上安装Git详细步骤(图文详解) 第一次使用Git时,需要对Git进行一些配置,以方便使用Git. 不过,这种配置工作只需要进行一次便可, ...

随机推荐

  1. linux系统的认识

    当使用其他工具连接linux系统时的常用命令. 连接:ssh 用户名@ip 进入根目录:cd /            (一般都是先进入根目录然后才能进入其他文件夹) 进入其他文件夹:cd /home ...

  2. PythonPEP8 风格规范指南

    PEP是Python Enhancement Proposal的缩写,通常翻译为"Python增强提案".每个PEP都是一份为Python社区提供的指导Python往更好的方向发展 ...

  3. Charles 抓取https 包

    1.  Recording Settings中 include 添加 host , port端口为443 2.  SSL Proxying Settings 选中 Enable SSL Proxyin ...

  4. C#.NET操作数据库通用类

    下面给出了一个C#操作MS SQL Server 数据库的通用类,通过该类可以对数据库进行任何操作,包括执行SQL语句.执行存储过程.以下是其详细实现过程,希望大家共同修改优化之.稍后将介绍如何使用它 ...

  5. OpenGL光照贴图

    一:啥叫贴图 上一节中,我们将整个物体的材质定义为一个整体,但现实世界中的物体通常并不只包含有一种材质,而是由多种材质所组成. 拓展之前的系统,引入漫反射和镜面光贴图(Map).这允许我们对物体的漫反 ...

  6. Java 集合框架 02

    集合框架· LinkedList 和 泛型 去除ArrayList中重复字符串元素 * A:案例演示 * 需求:ArrayList去除集合中字符串的重复值(相同内容的字符串) * 思路:创建新集合方式 ...

  7. 翻译:《实用的Python编程》04_01_Class

    目录 | 上一节 (3.6 设计讨论) | 下一节 (4.2 继承) 4.1 类 本节介绍 class 语句以及创建新对象的方式. 面向对象编程(OOP) 面向对象编程是一种将代码组织成对象集合的编程 ...

  8. 爬虫必知必会(5)_scrapy框架_基础

    一.移动端数据的爬取 基于某一款抓包工具,fiddler,青花瓷,miteproxy fillder进行一个基本的配置:tools->options->connection->all ...

  9. WPF 基础 - 在模板中找元素

    1. 在 ControlTemplate 中寻找元素 <Window.Resources> <ControlTemplate x:Key="cTmp"> & ...

  10. 商品购买 & 收银台订单优化测试点疑问归纳梳理

    摘要 更新内容 更新人 更新时间 初版内容 Young 2020.11.20  16:40 贾轩审查确认 Harry 2020.11.20  17:00 和林森沟通问题答疑 参与人:林森.Harry. ...