我与Git的那些破事--代码管理

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/cloudman-open/

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



我与Git的那些破事--代码管理

原文地址:https://www.cnblogs.com/cloudman-open/p/12169029.html

时间: 2024-10-07 11:23:23

我与Git的那些破事--代码管理的相关文章

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

在上篇文章中,我提到了Git的基本概念和一些本人实际项目中的总结.然而,最近读了Vincent Driessen写的一篇文章,觉得他总结的太好了,站在他肩膀上忍不住将自己的理解分享出来.Vincent Driessen的文章连接放在本文最下方,有需要的童鞋可去参考一二. 话不多上,干货顶上. 分支模型 上述这张图便是一张完整的分支模型.乍看上去,似乎有点复杂,其实理解后非常简单,并且十分经典.如果你所在项目代码管理较为混乱,我相信,该模型会对你有所帮助. 主要分支 对于完整的项目来讲,有两个主要

2、IDEA下Git做代码管理

2.IDEA下Git做代码管理 1.介绍 1.1 Git概述 Git是类似于SVN等代码管理软件,使用分布式技术实现.Github是互联网代码仓库,每个人可以在上面创建自己的仓库,使用git完成同github仓库的代码同步等管理工作. IntelliJ idea->Git: 使用 Git->GitHub: 同步资源 1.2 Git逻辑架构 git架构上分为远程仓库.本地仓库和工作空间.远程仓库就是位于GitHub上的仓库,本地仓库是为用户本机的仓库目录,工作空间是用户开发所处的目录.三者关系与

IDEA下通过Git实现代码管理

IDEA下通过Git实现代码管理 1.介绍 1.1 Git概述 Git是类似于SVN等代码管理软件,使用分布式技术实现.Github是互联网代码仓库,每个人可以在上面创建自己的仓库,使用git完成同github仓库的代码同步等管理工作. IntelliJ idea->Git: 使用 Git->GitHub: 同步资源 1.2 Git逻辑架构 git架构上分为远程仓库.本地仓库和工作空间.远程仓库就是位于GitHub上的仓库,本地仓库是为用户本机的仓库目录,工作空间是用户开发所处的目录.三者关系

踩一坑,采一金之php数据类型那点“破”事

学海无涯,乘舟以渡之~ php边学边写差不多一年多点,php这种弱类型语言与之前接触的c.java.as3等语言还是挺不一样的,现在觉得很庆幸的是从c开始学编程,无论数据类型还是指针也好,至少有个基础的概念. 在php数据类型上踩了不少坑,也学到了一些东西,在这里分享一下,看源码可能会很枯燥,不过了解一些底层实现就好,后面不要再踩坑. 序. 之前在网上看到有比较热的帖子说:PHP的ip2long有bug,请慎用?于是看了下描述,大致如下 <?php echo ip2long('58.99.11.

Dll 导出函数那些破事

经常使用VC6的Dependency查看DLL导出函数的名字,会发现有DLL导出函数的名字有时大不相同,导致不同的原因大多是和编译DLL时候指定DLL导出函数的界定符有关系. VC++支持两种语言:即C/C++,这也是造成DLL导出函数差异的根源 我们用VS2008新建个DLL工程,工程名为“TestDLL” 把默认的源文件后缀 .CPP改为.C(C文件) 输入测试代码如下: 01 int _stdcall MyFunction(int iVariant) 02 { 03 return 0; 0

结对编程总结+git使用与GitHub代码管理——by林玉俊&amp;唐宇涵

一.分析需求 在拿到结对编程项目需求文档后,我和队友第一件事就是讨论需求,分析项目给出的需求以及实现的一些细节.比如,登录界面的设置(注册.重置.登录按钮),注册界面的输入框设置(手机号.验证码.密码.确认密码),题目难度和数量界面的设置等这些逻辑流程问题.并大致对各个类需要实现的功能和接口进行了商定,这样方便了后期的合拢. 下图为当时讨论时的笔记-- 二.编程实现 我负责的是用户手机注册并发送验证码到相应手机号部分和随机算式计算结果部分. 1.接收验证码部分 最初是根据老师给的提示,在阿里云平

代码管理工具 --- git的学习笔记四《重新整理git(1)》

1.创建版本库 mkdir  创建目录 cd  地址,到该地址下 pwd 显示当前目录 1.创建目录 $ mkdir startGit $ cd startGit $ pwd 显示当前目录 或者cd到桌面,然后再创建目录 2.初始化版本库 $ git init 初始化仓库 提示信息:Initialized empty Git repository in /Users/xingzai/Desktop/startGit/.git/ 建立一个空的git仓库在/Users/xingzai/Desktop

扯一扯关于android开发工具的破事

一.前言 开发android一转眼之间已经过去一年多了,回想到以前刚开始学习android还是在大学里面,那是看了mars的视频教程就开始android之路,从最开始的环境搭建到开发项目,一步一步自己摸索进步,由于一直没有遇到资深的android工程师带领我,所以自己大部分学习来自于网络的blog,eoe论坛,所以我深爱技术分享这个东西,因为网络的强大是由于一大批人不为任何利益分享自己的技术,所以我们才能在网络上找到答案,就算没有答案也可以找到前人研究的成果,我们就可以踩着前人的肩膀继续前进,技

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

作为一个程序员,你要学会代码的管理,这是一个最基本的修养,就像是一个剑客的剑谱,代码管理,目前流行的是svn和git,但是很不好的是git如果没有插件的话,很多人都不会用git bash 来实现自己的代码管理,自己不断尝试,今天终于总结出一个很好的方法,供各位剑客参考一下,望尔等使用后,脱离天天来回背电脑的苦逼命运. 1.下载git 这里大家要注意下系统的配置: windows看这里:windows的git下载地址 2.安装git 自己选择安装路径或者默认就可以了 3.配置git 给github