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

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

第一章: 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.kler.cn/a/527123.html

相关文章:

  • Linux网络 | 网络层IP报文解析、认识网段划分与IP地址
  • 【算法】动态规划专题① ——线性DP python
  • 论文阅读(七):贝叶斯因果表型网络解释遗传变异和生物学知识
  • 快速分析LabVIEW主要特征进行判断
  • 算法随笔_31:移动零
  • 认识小程序的基本组成结构
  • 【华为OD-E卷 - 字符串化繁为简 100分(python、java、c++、js、c)】
  • 计算机网络一点事(23)
  • minimind - 从零开始训练小型语言模型
  • 树莓派入门笔记(二)最常用的树莓派 Linux 命令及说明_树莓派系统命令
  • PostgreSQL TRUNCATE TABLE 操作详解
  • AVL搜索树
  • 商品列表及商品详情展示
  • 通过想像,见证奇迹
  • 【gRPC-gateway】初探grpc网关,插件安装,默认实现,go案例
  • Mysql进阶学习
  • 最新 Android 热门开源项目公布
  • 稀疏混合专家架构语言模型(MoE)
  • 【4Day创客实践入门教程】Day4 迈向高手之路——进一步学习!
  • .cc扩展名是什么语言?C语言必须用.c为扩展名吗?主流编程语言扩展名?Java为什么不能用全数字的文件名?
  • 七、深入了解SpringBoot的配置文件
  • 代随(138):单调栈:一维接雨水
  • 如何将IP切换到海外:详细指南
  • WebSocket使用及优化(心跳机制与断线重连)_websocket timeout
  • IT运维的365天--025 H3C交换机用NTP同步正确的时间
  • PyDeequ库在AWS EMR启动集群中数据质量检查功能的配置方法和实现代码