【Git之窗】(五)Git分支管理的一个实例

2024-08-26 21:18
文章标签 管理 实例 git 分支 之窗

本文主要是介绍【Git之窗】(五)Git分支管理的一个实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

   上一篇博客中介绍了Git分支管理的基础概念,这篇博客模拟一个实际场景来分析下为什么要提倡要“频繁”地使用Git分支。

   -------------------------------------------


   人物:

   一名姓“程”,名“序员”的单身程序员,29岁,黑框眼镜、格子衫、牛仔裤、运动鞋、双肩包……


   ------------------------------------------


   场景:

   1、开发某“**云平台”项目。


   2、为了实现某个新的需求,创建一个分支“iss53”。

        


            3、在这个分支上继续展开工作,并且执行了一次commit操作,此时"iss53"分支已经指到了C3版本的快照上。

             

        之后,“序员”仍然在继续工作……

  ---------------------------------------------------------------


   突发情况:


   “序员”突然接到一个电话说线上版本有个很严重的bug需要紧急修补,前提是生产服务器上的程序已经发版,此时你该怎么办?要知道,此时你已经在上线的版本上写了一些新的功能,但是没有测试,你会怎么办?


   ---------------------------------------------------------------


    我的解决方案:

   (1)Git方案

    1、提交iss53上对新需求开发的版本, 之后checkout到master分支上面,这个时候我的工作目录中的内容已经和线上那个版本的代码一模一样了

    2、我在master的基础上,新建“hotfix”分支,此时hotfix分支指向了C4版本的代码:

       

            紧接着,在hotfix分支上修改这个线上的bug,此时序员已经加班到了凌晨1点钟……

    突然间,bug消失了,紧接着测试也通过了,太爽了!

   3、通过“git rebase”或者“git merge”命令,把hotfix分支合并到master分支上面,如图:

            

          4、此时可以通过命令“git branch -d hotfix”删除掉hotfix分支了,并且通过"git checkout iss53"命令切换到了iss53分支,继续新需求的开发工作,如图:

               

           如果想要把解决线上bug的修复代码也同步到"iss53"上面,执行“git rebase master”,此时的“iss53”分支已经是兼具“解决了线上bug”同时“在开发新功能”的一个分支了。


   (2)SVN方案

    由于已经写了一部分新需求的代码,首先通过“与资源库同步”按钮,找到最近在每一层、每一个模块里修改过的代码,做好备份后,“还原”到之前的代码版本,此时与线上发版的代码一模一样了,之后解决bug、测试、打包、发版。

    紧接着,将之前做修改的那部分代码提取出来,再copy到当前工作目录当中,测试、打包、发版。


    比较针对这个突发问题的解决,很显然Git的使用要优于SVN的解决方案,所以,建议使用前者。

 


这篇关于【Git之窗】(五)Git分支管理的一个实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1109704

相关文章

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢

java String.join()方法实例详解

《javaString.join()方法实例详解》String.join()是Java提供的一个实用方法,用于将多个字符串按照指定的分隔符连接成一个字符串,这一方法是Java8中引入的,极大地简化了... 目录bVARxMJava String.join() 方法详解1. 方法定义2. 基本用法2.1 拼接

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

基于Python+PyQt5打造一个跨平台Emoji表情管理神器

《基于Python+PyQt5打造一个跨平台Emoji表情管理神器》在当今数字化社交时代,Emoji已成为全球通用的视觉语言,本文主要为大家详细介绍了如何使用Python和PyQt5开发一个功能全面的... 目录概述功能特性1. 全量Emoji集合2. 智能搜索系统3. 高效交互设计4. 现代化UI展示效果

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

Mysql中的用户管理实践

《Mysql中的用户管理实践》:本文主要介绍Mysql中的用户管理实践,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录13. 用户管理13.1 用户 13.1.1 用户信息 13.1.2 创建用户 13.1.3 删除用户 13.1.4 修改用户