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

news/2025/2/4 19:12:55/

第一章: 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/news/1569302.html

相关文章

汽车蓝牙钥匙定位仿真小程序

此需求来自于粉丝的真实需求,假期没事,牛刀小试。 一、项目背景 如今,智能车钥匙和移动端定位技术已经相当普及。为了探索蓝牙 Beacon 在短距离定位场景下的可行性,我们搭建了一个简易原型:利用 UniApp 在移动端采集蓝牙信标的 RSSI(信号强度),通过三边定位算法估算钥…

curope python安装

目录 curope安装 测试: 报错:libc10.so: cannot open shared object file: No such file or directory 解决方法: curope安装 git clone : GitHub - Junyi42/croco at bd6f4e07d5c4f13ae5388efc052dadf142aff754 cd models/curope/ python setup.py build_ext --inplac…

大厂面试题备份20250131

20250131 模型压缩怎么做?除了知识蒸馏 模型压缩是为了减少深度学习模型的计算和存储需求,提高推理效率。除了知识蒸馏,常见的模型压缩方法包括: 1. 剪枝(Pruning) 非结构化剪枝(Unstructur…

基于微信小程序的酒店管理系统设计与实现(源码+数据库+文档)

酒店管理小程序目录 目录 基于微信小程序的酒店管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 (1) 用户信息管理 (2) 酒店管理员管理 (3) 房间信息管理 2、小程序序会员模块的实现 (1)系统首页 &#xff…

DeepSeek r1本地安装全指南

环境基本要求 硬件配置 需要本地跑模型,兼顾质量、性能、速度以及满足日常开发需要,我们需要准备以下硬件: CPU:I9内存:128GB硬盘:3-4TB 最新SSD,C盘确保有400GB,其它都可划成D盘…

python3+TensorFlow 2.x 基础学习(一)

目录 TensorFlow 2.x基础 1、安装 TensorFlow 2.x 2、TensorFlow 2.x 基础概念 2、1 Eager Execution 2、2 TensorFlow 张量(Tensor) 3、使用Keras构建神经网络模型 3、1 构建 Sequential 模型 3、2 编译模型 1、Optimizer(优化器&a…

第31章 星骗计划的推进与团队协作

我回到自己的办公室,在座位上刚坐下没多久,还没来得及好好整理一下思绪,就听到一阵敲门声。“请进。” 我抬头说道,声音中带着一丝疲惫。借助情绪监测系统,我察觉到自己的压力指数正处于高位,于是暗自提醒自…

H3CNE-33-BGP

Border Gateway Protocol,边界网关路由协议 路由协议分类 内部网关路由协议IGP:rip、ospf、is-is外部网关路由协议EGP:EGP(已淘汰)、BGP BGP特点: 针对大型网络BGP是运行在IGP之上BGP可以跨路由器建立邻…