当前位置: 首页 > news >正文

【Git】一文带你入门Git分布式版本控制系统(分支管理策略、Bug分支)

个人简介

👀个人主页: 前端杂货铺
🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端
📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招)
🚀未来打算: 为中国的工业软件事业效力n年
🥇推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2&Vue3项目实战 🥝Node.js 🥭Git🍒Three.js
🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧

Git 系列文章目录

Git 专栏参考链接
Git(一)【Git】一文带你入门Git分布式版本控制系统(简介,安装,Linux命令)
Git(二)【Git】一文带你入门Git分布式版本控制系统(必要配置、工作原理、创建/克隆项目)
Git(三)【Git】一文带你入门Git分布式版本控制系统(创建版本库、 版本回退)
Git(四)【Git】一文带你入门Git分布式版本控制系统(撤销修改、删除文件)
Git(五)【Git】一文带你入门Git分布式版本控制系统(创建合并分支、解决冲突)

文章目录

  • Git 系列文章目录
    • 一、分支管理策略
      • 1、创建 dev 分支,修改 txt 并提交
      • 2、切换至主分支并合并
      • 3、查看分支历史
    • 二、Bug 分支
      • 1、不具备提交条件的 dev 分支
      • 2、储藏工作现场
      • 3、修复 Bug
      • 4、恢复 dev 分支


一、分支管理策略

通常,合并分支时,如果可能,Git 会用 Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息。

如果要强制禁用 Fast forward 模式,Git 就会在 merge 时生成一个新的 commit,这样,从分支历史上就可以看出分支信息。

下面我们实战一下 --no-ff 方式的 git merge

1、创建 dev 分支,修改 txt 并提交

我们创建新的 dev 分支,修改 txt 文件,推到暂存区并提交至本地仓库

在这里插入图片描述

git checkout -b dev
git branch
git add readme.txt
git commit -m "add merge"

在这里插入图片描述


2、切换至主分支并合并

切换到 master 主分支,准备合并(请注意 --no-ff 参数,表示禁用 Fast forward)

git checkout master
git merge --no-ff -m "merge with no-ff" dev

在这里插入图片描述


3、查看分支历史

git log --graph --pretty=oneline --abbrev-commit

摘自 廖雪峰的官方网站

在这里插入图片描述
在这里插入图片描述


二、Bug 分支

Bug 可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。

1、不具备提交条件的 dev 分支

当我们正在 dev 分支上进行工作还没有提交(并不是不想提交,而是工作了一半,没法提交),这时出现了一个要紧急修改的 Bug,我们便可以使用 stash 功能,把当前工作现场“储藏”起来。

git branch
git status

在这里插入图片描述


2、储藏工作现场

我们使用 stash 把当前工作现场(未完成的 dev 分支)储藏起来,之后查看状态(很干净)

git stash
git status

在这里插入图片描述

3、修复 Bug

假定我们要在 master 分支上修复 Bug(代号 101)

我们要进行以下 Bug(代号 101)的修改

在这里插入图片描述

在这里插入图片描述

我们首先切换到 master 分支,之后创建一个临时分支 issue-101,并提交

在这里插入图片描述

切换至 master 分支,合并

至此,Bug 修复完成

git checkout master
git merge --no-ff -m "merged bug fix 101" issue-101

在这里插入图片描述


4、恢复 dev 分支

我们先切换到 dev 分支,查看当前状态

git checkout dev
git status

在这里插入图片描述

Git 把 stash 存放在某个位置了,我们需要找回工作现场 dev 分支

在这里插入图片描述

之后我们需要对其进行恢复(两种方法)

方法一:用 git stash apply 恢复,但是恢复后,stash 内容并不删除,我们需要用 git stash drop 来删除
方法二:用 git stash pop,恢复的同时把 stash 内容也删了

在这里插入图片描述

之后删除 issue-101 分支,查看当前分支情况(要丢弃一个没有被合并过的分支,可以通过 git branch -D <name> 强行删除)

在这里插入图片描述


在这里插入图片描述


相关文章:

  • 独占指针 std::unique_ptr
  • 斐波那契的几种思路,你都会吗
  • 关于新冠的几点总结
  • 开源项目推荐 | 中科院自动化所历时9年打造的类脑认知智能引擎“智脉”正式开源部署至OpenI启智社区
  • Servlet基础教程 (保姆级教学)
  • vue经历从2.0到3.0更新
  • 安装mysqlclient失败解决办法
  • 华为OD机试真题 Java 实现【单词接龙】
  • Spring boot 日志直接推送到elasticsearch上
  • 网络部署运维实验(pat 端口映射含命令)
  • 软件测试期末复习(二)试题及答案
  • 智能家居创意DIY之智能灯泡
  • Linux——磁盘在网络中共享
  • 【Git】一文带你入门Git分布式版本控制系统(创建合并分支、解决冲突)
  • Spring Boot骚操作-多数据源Service层封装
  • (三)从jvm层面了解线程的启动和停止
  • canvas 绘制双线技巧
  • HTTP 简介
  • iOS | NSProxy
  • javascript 总结(常用工具类的封装)
  • Java方法详解
  • MySQL数据库运维之数据恢复
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 复习Javascript专题(四):js中的深浅拷贝
  • 给github项目添加CI badge
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 工作中总结前端开发流程--vue项目
  • 力扣(LeetCode)21
  • 判断客户端类型,Android,iOS,PC
  • 入门到放弃node系列之Hello Word篇
  • 实现简单的正则表达式引擎
  • 怎么将电脑中的声音录制成WAV格式
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • # 安徽锐锋科技IDMS系统简介
  • # 达梦数据库知识点
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C语言)字符分类函数
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (poj1.2.1)1970(筛选法模拟)
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (八)c52学习之旅-中断实验
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (原)Matlab的svmtrain和svmclassify
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • @EnableConfigurationProperties注解使用
  • @RequestParam详解
  • @vue/cli脚手架
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [CVPR2021]Birds of a Feather: Capturing Avian Shape Models from Images
  • [DP 训练] Longest Run on a Snowboard, UVa 10285
  • [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-controller-manager失败
  • [Everyday Mathematics]20150130
  • [E链表] lc83. 删除排序链表中的重复元素(单链表+模拟)