分享一个 git stash 的实际使用场景。

news2024/10/7 0:27:11
  1. 当我将新的变更记录提交为 git commit --amend 后,发现这需要修改云端上的提交记录,也就是 vscode 中会出现这张图

    在这里插入图片描述

  2. 于是,我通过 git reset head^ 撤销掉刚刚的提交。

    reset 前:

    在这里插入图片描述

    reset 后:

    在这里插入图片描述

  3. 但在撤销的同时,我也丢失了最新的提交记录。不过我并不担心,因为我还有云端上的记录,所以我可以简单的直接将云端上的提交记录合并到当前分支

    git merge origin/note-readme
    
  4. 需求来了,由于我 reset 后的变更还存储在工作树中,所以此时我不能执行 merge 操作。这个时候,大多数人的想法应该是这样的:

    1. 先拷贝变更的内容,
    2. 然后 discard 工作树
    3. 执行 merge 操作
    4. 再将刚刚变更的内容拷贝回来

    嗯,这是一种解决方法,但这也太麻烦了,我们完全可以通过 stash 简化上面过程:

  5. 使用 stash 的步骤如下:

    1. 同样是拷贝变更内容,只不过我们是通过 git add . && git stash save "先拷贝变更内容" 命令进行拷贝!

      在这里插入图片描述

      在这里插入图片描述

    2. 然后合并云端分支 git merge origin/note-readme

      在这里插入图片描述

    3. 现在,我们就恢复到最开始的时候了!也就是文章开始之前,还没之前 git commit --amend 之前

    4. 最后, 只需要再将刚刚变更的内容拷贝回来,就可以了。方式时运行 git stash pop 命令。

总结上面过程

  1. 编辑内容
  2. git add . && git commit --amend
  3. 发现与云端冲突
  4. git reset head^ 撤销刚刚的变更(同时撤销了原有的提交)
  5. git add . && git stash save "先拷贝变更的工作树中的变更"
  6. git merge origin/note-readme 再将云端的提交合并过来
  7. git stash pop 将刚刚拷贝的内容拿出来
  8. git add . && git commit -m "新的提交" 重新提交

[!TIP]

git stash pop 命令默认会将藏匿区中最新的内容恢复到当前工作目录中,并从 stash 栈中删除它。但如果恢复的内容和已有内容出现冲突时,则不会自动从 stash 中删除。这个时候,你可以通过 git stash drop ${0} 显式删除删除。其中的 ${0} 可能需要根据情况进行修改。你可以通过 git stash list 查看 stash 栈中的所有内容。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华院计算参编《金融业人工智能平台技术要求》标准

随着人工智能技术的迅猛发展,金融机构正在从业务场景化向企业智能化演进,金融业对智能化的需求愈加迫切。为引导产业有序发展、规范行业自律、加快金融行业智能化转型,中国信通院依托中国人工智能产业发展联盟(AIIA)及…

机器学习 | 使用Scikit-Learn实现分层抽样

在本文中,我们将学习如何使用Scikit-Learn实现分层抽样。 什么是分层抽样? 分层抽样是一种抽样方法,首先将总体的单位按某种特征分为若干次级总体(层),然后再从每一层内进行单纯随机抽样,组成…

第19讲:自定义类型:结构体

1.结构体类型的声明 2.结构体变量的创建和初始化 3.结构体变量的赋值 4.结构体成员访问操作符 5.结构体内存对齐 1.结构体类型的声明 1.1结构体声明 struct 结构体名称 { 结构体成员... } 举例:描述一个学生: 2结构体变量的创建和初始化 2.1匿…

Linux文本编辑器vim使用和分析—2

目录 1.对vim的简单理解: 2.看待vim的视角: 3.命令模式: 3.1vim被打开后默认的模式: 3.2命令模式切换插入模式: 3.3其他模式回到命令模式: 3.4光标定位: 4.插入模式(编辑模式)&#xff1…

数字乡村创新实践探索农业现代化与农村治理现代化新路径:科技赋能农村全面振兴与农民幸福生活

目录 引言 一、数字乡村与农业现代化 1、智慧农业技术的应用 2、农业产业链的数字化转型 二、数字乡村与农村治理现代化 1、农村信息化水平的提升 2、农村治理模式的创新 三、科技赋能农村全面振兴与农民幸福生活 1、提升农业生产效益与农民收入 2、促进农村产业结构…

【ArcGIS 脚本工具】在ArcPro中实现mdb转gdb

ArcGIS Pro作为主力使用很久了,但是ArcMap也从来没有卸载过。 要问为什么,就是还需要ArcMap来读写mdb数据库,Pro是不支持读写mdb数据库的。 我之前尝试过不借助ArcMap把mdb转成gdb,奈何技术太菜搞不定。 直到我看到了公众号【G…

人工智能轨道交通行业周刊-第77期(2024.4.1-4.14)

本期关键词:货车巡检机器人、铁路安全技防、车辆换长、阿里千问、大模型创业 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro轨道世界…

现代电商会员管理新玩法——付费会员

现在,无论是线上还是线下,几乎都在做会员管理。会员规则五花八门,不仅有常见的注册会员,还出现了付费会员。付费会员机制,从成为会员的第一步就开始筛选,选出粘性高、要求高、复购高且有一定消费力的用户群…

缓存与数据库的数据一致性解决方案分析

在现代应用中,缓存技术的使用广泛且至关重要,主要是为了提高数据访问速度和优化系统整体性能。缓存通过在内存或更快速的存储系统中存储经常访问的数据副本,使得数据检索变得迅速,从而避免了每次请求都需要从较慢的主存储&#xf…

labview中的同步定时结构

单帧定时循环定时比较精确,最常用的功能还是它的定时循环功能,定时循环允许不连接“循环条件”端子,可以连接定时循环“结构名称”端子,通过定时结构停止函数停止循环。 例子在附件中。

MySQL workbench使用教程(逐渐补充版)

附件: 附1:MySQL下载、安装、配置之Windows 附2:MySQL workbench下载、安装、配置、汉化教程 一、 使用 Workbench 操作数据库 1.MySQL Workbench 初始化界面 2.连接远程 MySQL 数据库 3.创建数据库 切换至schemas标签,右键单…

在家如何查找下载外文文献

查找下载外文文献的数据库大部分都需要使用权限的,那么我们如何在家进入这些数据库查找下载文献资源呢?请看本文的经验分享: 举例1、 一位同学的文献求助:Performance of financial hedging and earnings management under dive…

科研学习|科研软件——如何使用SmartPLS软件进行结构方程建模

SmartPLS是一种用于结构方程建模(SEM)的软件,它可以用于定量研究,尤其是在商业和社会科学领域中,如市场研究、管理研究、心理学研究等。 一、准备数据 在使用SmartPLS之前,您需要准备一个符合要求的数据集。…

【自研网关系列】请求服务模块和客户端模块实现

🌈Yu-Gateway::基于 Netty 构建的自研 API 网关,采用 Java 原生实现,整合 Nacos 作为注册配置中心。其设计目标是为微服务架构提供高性能、可扩展的统一入口和基础设施,承载请求路由、安全控制、流量治理等…

EasyUI Jquery 学习笔记 ——DataGrid(数据网格)与 Tree(树)详细版

1. DataGrid(数据网格)与 Tree(树) 1.1 Datagrid 数据网格 扩展自 $.fn.panel.defaults。通过 $.fn.datagrid.defaults 重写默认的 defaults。 数据网格(datagrid)以表格格式显示数据,并为选择、排序、分组和编辑数据提供了丰富的支持。数据网格(datagrid)的设计目…

前端三件套学习笔记(持更)

目录 1、HTML,CSS,JS区别 2、HTML结构 1、HTML,CSS,JS区别 结构写到 HTML 文件中&#xff0c; 表现写到 CSS 文件中&#xff0c; 行为写到 JavaScript文件中。 2、HTML结构 <!DOCTYPE html> <html><head><title>我的第一个页面</title><…

[尚硅谷flink] 检查点笔记

在Flink中&#xff0c;有一套完整的容错机制来保证故障后的恢复&#xff0c;其中最重要的就是检查点。 文章目录 11.1 检查点11.1.1 检查点的保存1&#xff09;周期性的触发保存2&#xff09;保存的时间点3&#xff09;保存的具体流程 11.1.2 从检查点恢复状态11.1.3 检查点算法…

计算机服务器中了rmallox勒索病毒怎么办,rmallox勒索病毒解密流程步骤

在企业的生产运营过程中网络发挥着巨大作用&#xff0c;利用网络可以拓宽市场&#xff0c;提高办公效率&#xff0c;网络为企业的生产运营提供了极大便利&#xff0c;但也为企业的数据安全带来隐患。近日&#xff0c;云天数据恢复中心接到多家企业的求助&#xff0c;企业的计算…

二维相位解包理论算法和软件【全文翻译- 菲林(Flynn)最小不连续性方法(4.5)】

4.5 菲林最小不连续性方法 在迄今为止对路径跟踪算法的讨论中,我们忽略了一种非常自然的方法,现在我们将对其进行描述。如果我们仔细观察图 4.42(a)中包裹相位数据中的条纹图案,就会发现 "条纹线 "或最亮像素和最暗像素之间的边界标志着从 0 到 2π 的过渡,它们…

Linux gcc 6

本章开始学习工具 什么是工具&#xff1f; 本质也是指令 yum 命令 小火车 sudo yum install sl&#xff08;安装sl&#xff09; sudo yum install -y sl //直接yes就不提示了 yum list //将yum源上的软件都穷举出来 yum search sl //结果不友好&#xff0c;不推荐 yum lis…