Git进阶之旅:分支管理策略

server/2025/2/1 12:38:49/

第一章: Git stash:

  1. 介绍:
    1. 当正在 dev 分支上开发某个项目,这时项目中出现一个 bug,需要修复,但是项目只完成一半,还不想提交,这时可以使用 git stash 命令将修改的内容保存至堆栈区,然后顺利切换到别的分支,进行 bug 修复,再次切回到 dev 分支,从堆栈区恢复刚刚保存的内容。
    2.   由于疏忽,本应该在 dev 分支开发的内容,却在 master 进行了开发,需要回到 dev 分支上进行开发,可以用 git  stash  将内容保存在堆栈中,切回到 dev 分支后,再次恢复内容即可
  2. 总结:
    1. git stash 命令的作用是将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上恢复出堆栈的内容。
    2. stash 中的内容不仅可以恢复到原先开发的分支,也可以恢复到其他任意分支上
    3. git stash 作用的范围包括工作区和暂存区的内容,也就是说没有提交的内容都会保存至堆栈中
  3. git shash :
    1. 在 master 分支修改 A.txt 文件,添加一行内容
    2. 切换到 dev 分支会提示错误,git 建议我们提交或 stash 修改的内容再进行切换
    3. 先把修改的内容 git  stash 到堆栈区再进行分支切换
    4. git stash  list:列出 stash 保存的所有修改
    5. git stash pop:将堆栈中的文件取出

第二章:分支管理策略

  1. git 的分支整体预览图如下:
    1. master :git 默认主分支(这里不做操作)
    2. stable:稳定分支,代替 master,主要用来版本发布
    3. develop:日常开发分支,该分支正常保存了开发的最新代码
    4. feature:具体的功能开发分支,只与 develop 分支交互
    5. release:可以认为是 stable 分支的为测试版
      1. 比如:某一期的功能全部开发完成,那么就将 develop 分支合并到 relese 分支,测试没有问题并且到了发布日期就合并到了 stable 分支,进行发布
    6. bugfix:线上 bug 修复分支
  2. 主分支:
    1. master 分支不做操作,这里针对 stable 和 develop 这两个分支来讲解
      1. stable 分支:用来发布,管理着多个稳定的版本
      2. develop 分支:日常开发的分支
    2. 使用这两个分支就具有了最简单的开发模式:
      1. develop 分支用来开发功能,开发完成并且测试没有问题后,则将 develop 分支的代码合并到 stable 分支并发布
  3. 辅助分支:
    1. 通过这些分支,我们可以做到:团队成员之间并行开发,增加新功能更加容易,可以同时进行开发和版本发布、线上 bug 修复等
  4. Feature 分支:
    1. feature 分支用来开发具体的功能,一般基于 develop 分支,最后完成功能后再合并到 develop 分支
    2. 例如:
      1. 我们针对 develop 分支来做功能开发,在开发的过程中会有紧急需求需要开发,且在本次版本发布之前要能测试完成
      2. 我们可以基于之前稳定版本另开一个 feature 分支来做紧急需求的开发,并发布进行测试,完成之后再合并到 develop 分支上
  5. release 分支:
    1. release 分支作为预发布分支,release 分支从 develop 分支 fork 出来,最终会合并到 develop 分支和 stable 分支,合并到 stable 分支上就是可以发布的代码了
    2. 为什么要从 develop 分支 fork 出来再合并到 develop 分支:
      1. 在 release 分支上难免会有 bug 产生,恢复 bug 也是在 release 分支上,所以必须要合并到 develop 分支
  6. bugfix 分支:
    1. bugfix 分支用来修复线上 bug
    2. 当线上代码出现 bug 时,我们基于 stable 分支开一个 bugfix 分支,修复 bug 之后再将 bugfix 分支合并到 stable 分支并进行发布,同时 develop 分支作为最新最全的代码分支,bugfix 分支也需要合并到 develop 分支上去

http://www.ppmy.cn/server/164066.html

相关文章

从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(基础组件实现)

目录 基础组件实现 如何将图像和文字显示到OLED上 如何绘制图像 如何绘制文字 如何获取字体? 如何正确的访问字体 如何抽象字体 如何绘制字符串 绘制方案 文本绘制 更加方便的绘制 字体附录 ascii 6x8字体 ascii 8 x 16字体 基础组件实现 我们现在离手…

高频 SQL 50 题(基础版)_620. 有趣的电影

高频 SQL 50 题(基础版)_620. 有趣的电影 一级目录 表:cinema id 是该表的主键(具有唯一值的列)。 每行包含有关电影名称、类型和评级的信息。 评级为 [0,10] 范围内的小数点后 2 位浮点数。 编写解决方案,找出所有影片描述为 …

Google Protocol Buffers的.NET与Python

一、引言 大家好,我是 [博主名字],一直致力于探索各种有趣且实用的技术,今天想和大家分享在项目开发中遇到的一个十分强大的工具 ——Google Protocol Buffers,以及它在.NET 与 Python 这两种不同语言环境中的应用和实践。 在当…

书生大模型实战营6

文章目录 L1——基础岛玩转书生「多模态对话」与「AI搜索」产品MindSearch 开源的 AI 搜索引擎书生浦语 InternLM 开源模型官方的对话类产品书生万象 InternVL 开源的视觉语言模型官方的对话产品在知乎上的提交 L1——基础岛 玩转书生「多模态对话」与「AI搜索」产品 MindSea…

AI编程风潮下的生产力革命:从 Copilot 到 Trae

AI编程风潮下的生产力革命:从 Copilot 到 Trae 前言 在人工智能飞速发展的背景下,“AI 编程”已经不再是概念炒作,而逐渐成为真实可落地的开发模式。从最初的 GitHub Copilot 到如今字节跳动的 Trae,以及各种聚焦不同场景的 AI 编…

Redis实现,分布式Session共享

依赖 不指定版本防止冲突 直接用版本依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.4</version><relativePath/> <!-- lookup parent from …

VUE之组件通信(一)

1、props 概述&#xff1a;props是使用频率最高的一种通信方式&#xff0c;常用与&#xff1a;父<——>子。 若 父传子&#xff1a;属性值是非函数。若 子传父&#xff1a;属性值是函数。 父组件&#xff1a; <template><div class"father">&l…

360大数据面试题及参考答案

数据清理有哪些方法? 数据清理是指发现并纠正数据文件中可识别的错误,包括检查数据一致性,处理无效值和缺失值等。常见的数据清理方法有以下几种: 去重处理:数据中可能存在重复的记录,这不仅会占用存储空间,还可能影响分析结果。通过对比每条记录的关键属性,若所有关键…