Debug-010-git stash的用法及使用场景

问题原因:

        其实也不是最近,就是之前就碰到过这个问题,那就是我正在新分支开发新功能,开发程度还没有到可以commit的程度,我不想提交(因为有些功能没有完全实现,而且没有自测的话很容易有问题,提交了之后看修改过的代码也不方便,而不提交又不能切换分支。),这时候生产环境有紧急问题需要改bug,那我要怎么在不提交代码的情况下切换分支去修改bug呢?(我以前的做法就是直接在新功能的分支上提交一下代码,然后再切到有bug的分支上,其实这样也没啥,就是对自己要求高了之后,感觉不应该在提交记录中存在一次这样的记录)因此git stash应运而生,就可以解决这个情况。

介绍:

git stash :

它会保存当前工作进度,会把暂存区和工作区的改动保存到一个未完结变更的堆栈中;

执行完这个命令后,再运行 git status命令,就会发现当前是一个干净的工作区,没有任何改动。

备注:git stash并不会把代码提交到远程仓库,如果需要添加备注说明可以用下面这个:

git stash save '备注'

相关命令:

//查看所有隐藏, 每一行的冒号前面的字符串就是标识此隐藏的id

git stash list	


// 重新显示标识为 id 的隐藏(list中不会删掉记录)

git stash apply	 + id


//git apply恢复隐藏后, 需要手动删除 list 列表中的记录

git stash drop + id


//恢复最新的进度到工作区 (list中会删掉恢复id的那一条记录)

git stash pop	


//恢复指定的进度到工作区

git stash pop + id

一般使用经验:

(1)一般的话其实只会有一条记录即可,但是还是应该先用git stash list看一下stash的记录

避免出错。例如有以下四条记录:

如果想回到3版本,就使用:

git stash apply 3

这时候其他版本不想要了,就删掉即可,3版本恢复之后也可以把list中的3也删除掉。

git stash drop 0
git stash drop 1
git stash drop 2

(2)所以一般的流程就是:先git stash一下,然后git branch 查看分支,再然后git checkout去切换分支,然后改bug,完了提交。最后切换来新功能分支,在使用git stash list 先查看,接着git stash apply (+id)(或者git stash pop(+id))去恢复代码即可。

(3)注意git stash apply和git stash pop的区别(这个看个人习惯,其实我们项目中放在stash 里面估计也就一条记录,所以恢复完直接删掉也行

(4)补充一下:如果list中的记录比较多,可以使用git stash clear一键全清除,但是要谨慎哦。

总结:

        现在可以去test一下,敲一遍就明白区别了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/633871.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能车竞赛指南:从零到一,驶向自动驾驶的未来

智能车竞赛指南:从零到一,驶向自动驾驶的未来 一、智能车竞赛概览1.1 竞赛介绍1.2 竞赛分类 二、智能车开发技术基础2.1 硬件平台2.2 软件开发 三、实战案例:循线小车开发3.1 系统架构3.2 代码示例 四、技术项目:基于ROS的视觉导航…

4月粽子行业线上市场销售数据分析

随着节日庆祝常态化,消费者对礼物消费的态度发生变化,这会影响粽子的消费模式和市场需求。再加上技术进步,如速冻粽子和真空粽子的推广,也极大地推动了粽子行业的发展,使得产品更易于保存和运输,从而满足了…

linux系统内存持续飙高的排查方法

目录 前言: 1、查看系统内存的占用情况 2、找出占用内存高的进程 3、解决方法 4、补充:如果物理内存使用完了,会发生的情况 前言: 如果一台服务器内存使用率持续处于一个高峰值,服务器可能会出现响应慢问题。例如s…

linux系统硬盘读写慢的排查方法

如果服务器硬盘读写慢,可能会导致处理性能降低,用户响应慢。因此及时排除故障至关重要。下面是硬盘读写慢的排查思路。 1、top命令查看硬盘是否繁忙。 2、找出占用硬盘带宽高的进程。 通过iotop命令进行查看,iotop命令是用于展示硬盘读写操作…

Docker入门指南:Docker的常用命令总结(五)

🍀 前言 博客地址: CSDN:https://blog.csdn.net/powerbiubiu 👋 简介 前面对Docker的安装,镜像,容器,数据卷进行了介绍,本章节总结下Docker的常用命令。 📖 正文 1 基…

一文读懂Linux

前言 为了便于理解,本文从常用操作和概念开始讲起。虽然已经尽量做到简化,但是涉及到的内容还是有点多。在面试中,Linux 知识点相对于网络和操作系统等知识点而言不是那么重要,只需要重点掌握一些原理和命令即可。为了方便大家准…

家政预约小程序05服务管理

目录 1 设计数据源2 后台管理3 后端API4 调用API总结 家政预约小程序的核心是展示家政公司提供的各项服务的能力,比如房屋维护修缮,家电维修,育婴,日常保洁等。用户在选择家政服务的时候,价格,评价是影响用…

【零代码智能体开发】打造一个“情感和好大师”,解决人际关系中的困扰

〇、前言 智能体技术的快速发展带动了用户需求和实际应用场景仍需进一步探索。为激发开发者的创意潜能,探索具有应用价值的智能体,“文心智能体大赛”应运而生。 文心智能体平台 是百度推出的基于文心大模型的智能体(Agent)平台…

操作系统实验1:Linux常用命令及简单C语言程序调试

1.1实验目的 了解Linux系统的组织和行为,包括 Linux的用户界面、目录结构组织、运行程序的基本方式。通过使用终端(terminal)熟悉Linux Shell 、常见命令(cd、ls、ps、chmod等)和 redirect、pipe机制。学习使用vi或者gedit等编辑器编辑一个c语言源程序,…

二叉树求解大小操作详解

目录 一、求所有结点个数 1.1 递归思路 1.2 递归分支图 1.3 递归栈帧图 1.4 C语言实现 二、求叶子结点个数 2.1 递归思路 2.2 递归分支图 2.3 递归栈帧图 2.4 C语言实现 三、求第K层的结点个数 3.1 递归思路 3.2 递归分支图 3.3 递归栈帧图 3.4 C语言实现 四、求…

C++的红黑树

目录 基本概念 插入结点的颜色 判断性质是否破坏 调整方式 u为g的右孩子 u存在且为红 u存在且为黑 u不存在 结论 红黑树结点定义 代码实现 基本概念 1、红黑树是一种特殊的二叉搜索树,每个结点会增加一个存储位表示结点的颜色(红或黑&#x…

超前预热|博睿数据将应邀出席双态IT用户大会,分享《构建云原生时代的一体化智能可观测性》

5月31日,第十二届双态IT用户大会将于成都盛大开幕,此次大会由DCMG和双态IT论坛联合主办,聚焦“信创时代的组织级云原生能力建设”和“组织级云原生运维能力建设”两大会议主题,旨在推动双态IT落地与创新,为企业数字化转…

syncthing文件夹同步与版本管理

1 前言 syncthing可以用来同步文件夹里的所有文件,并且有不错的版本管理,基本每次更改文件,20-40秒就被扫描到了,非常丝滑;这次以此来同步obsidian的插件和文件,达到多端同步; 我家里有一台台…

【C语言回顾】联合和枚举

前言1. 联合体1.1 联合体的声明1.2 联合体的特点1.3 联合体的使用 2. 枚举2.1 枚举的声明2.2 枚举的特点2.3 枚举的使用 结语 #include<GUIQU.h> int main { 上期回顾: 【C语言回顾】结构体 个人主页&#xff1a;C_GUIQU 专栏&#xff1a;【C语言学习】 return 一键三连;…

x264 码率控制 MBtree 原理:mbtree_propagate_list 函数分析

mbtree_propagate_list 函数功能 是视频编码中宏块树传播算法的一部分,用于在编码决策过程中更新参考帧的传播成本。这个过程特别关注于如何处理运动向量(Motion Vectors, MVs)以及如何根据这些MVs对参考帧的成本进行加权,从而影响最终的编码选择。 该函数作为x264编码器…

【Android】联系人列表补充

真布局--叠起来垂直管 效果展示 部分代码&#xff08;在activity_main&#xff09;里面 <FrameLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"…

二十五、openlayers官网示例CustomOverviewMap解析——实现鹰眼地图、预览窗口、小窗窗口地图、旋转控件

官网demo地址&#xff1a; Custom Overview Map 这个示例展示了如何在地图上增加一个小窗窗口的地图并跟随着地图的旋转而旋转视角。 首先加载了一个地图。其中 DragRotateAndZoom是一个交互事件&#xff0c;它可以实现按住shift键鼠标拖拽旋转地图。 const map new Map({int…

Java分支结构详解

Java分支结构详解 前言一、if 语句基本语法表示一表示二表示三 代码示例判定一个数字是奇数还是偶数判定一个数字是正数还是负数判定某一年份是否是闰年 注意要点悬垂 else 问题代码风格问题分号问题 二、switch 语句基本语法代码示例根据 day 的值输出星期 注意事项break 不要…

QtCreator,动态曲线实例

样式图&#xff1a; .ui 在sloem1.ui文件中&#xff0c;拖入一个label控件&#xff0c; 头文件.h #include "QtGui/QPainter.h" #include "QtCore/QTimer.h"protected:bool eventFilter(QObject *obj,QEvent *event);void labelPaint();public slots: /…

Element Plus/vue3 无限级导航实现

在使用element plus 时&#xff0c;最初要使用的就是导航组件了&#xff0c;官网上看到的也就是写死的一级/二级导航&#xff0c;那么如何设计一个无限级且动态的导航呢&#xff1f;毋庸置疑&#xff0c;递归。废话不多说&#xff0c;直接看代码和效果&#xff1a; 代码&#x…