git stash命令用法详解(临时存储代码)

2023-10-29

1、需求背景

        有时候在开发过程中,在一个分支上(dev1)已经写了一部分代码,但是需要紧急切换到别的分支(dev2)上修改某个代码,这时候不能直接从dev1分支上切换到dev2分支上,提示你需要保存代码。此时dev1分支上的代码还没有写完,暂时还不能提交。但是想在不提交代码的情况下能够临时保存dev1分支上的代码,然后切换到dev2分支上。等dev2分支上处理完成后,再切换到dev1分支上可以继续工作。

2、git stash介绍

        git stash会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。通过git stash命令推送一个新的储藏,当前的工作目录就干净了。

        stash是本地的,不会通过git push命令上传到git server上。

3、git stash常用命令

  • git stash save "save message"  : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
  • git stash list  :查看stash了哪些存储
  • git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
  • git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show  stash@{$num}  -p ,比如第二个:git stash show  stash@{1}  -p
  • git stash apply : 应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1} 
  • git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
  • git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储
  • git stash clear :删除所有缓存的stash

        使用 git stash apply 将之前隐藏的更改重新应用到工作副本,但是和 git stash pop 不同, 并不会将他们从stash中删除。 

4、演示操作

当在dev_index分支上修改了一些代码,这时候需要切换到dev_app分支上:

此时可以使用git stash命令保存代码:

git stash save 'dev_index_001'

此时可以顺利的切换到dev_app分支:

 待在dev_app分支处理完后,再次切换到dev_index分支:

此时再次使用git stash命令释放之前保存的代码:

git stash pop

注意:git stash在各个分支之间是通用的,不同分支缓存的代码可以保存到另外的分支上。

注意:git stash pop默认会恢复上一个,即第一个stash@{0}缓存的内容。建议使用git stash pop之前先使用一下git stash list查看一下,然后使用git stash pop stash@{x}。

参考博文:

Git stash 暂存区详解——迹忆客

git-stash用法小结 - Tocy - 博客园 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git stash命令用法详解(临时存储代码) 的相关文章

  • Git:在本地合并远程分支

    我已经通过以下方式拉取了所有远程分支git fetch all 我可以看到我想要合并的分支git branch a作为远程 原点 分支名称 问题是它无法访问 我无法合并或结帐 您可以参考那些远程跟踪分支 列出git branch r 及其遥
  • php run git 收到“ssh 权限被拒绝”

    我正在尝试从浏览器中运行 git pull php 脚本 但我得到了 sh 连接到主机 git assembla com 端口 22 权限被拒绝 我的 PHP 脚本
  • 是否应该在 git 中跟踪 .history 文件夹中的文件[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 每当我进行更改时 history 文件夹中的某些文件在我的状态中都会显示为未跟踪 我将如何控制它 即 make 是自动添加或不添加这些内容 而不
  • git-svn SVN 作者文件的相对路径?

    我已经使用 git svn 从工作中克隆了一个 SVN 存储库 在最初的克隆过程中 我提供了一个 SVN 作者文件 当我进行初始克隆时 git 设置了authorsfile作为绝对路径 但是 我在工作机器和笔记本电脑上保留了这个 git 存
  • 如何损坏 Git 存储库?

    创建损坏的 git 存储库有哪些方法 有没有有趣的方法可以永久损坏 git 存储库 你能否削弱一个 git 存储库 使其行为有些正常 但会做一些奇怪的事情 我的兴趣来自于当有人担心他们是否真的创建了不可恢复的状态时 它通常很容易修复或至少可
  • 如何获取第一次提交的 Git diff?

    我创建了一个存储库 在其中创建了一个文件 在文件中放入了一些内容 然后提交了该文件 现在 我想查看该提交的差异 理想情况下应该显示添加的文件以及添加到其中的行 然而 git diff HEAD HEAD回报fatal ambiguous a
  • 如何让 git 和 copSSH 在正确的目录中查找密钥?

    我刚刚安装了 Windows 版 copSSH 当我启动它时 我得到一个目录C copSSH home Nick ssh其中有我的酒吧和私钥 当我通过 Cygwin bash 窗口访问此目录时 使用 ssh 用户 主机 我很高兴地登录了 但
  • Python 无法在 git bash 命令行中工作

    Python 不会在 git bash Windows 中运行 当我在命令行中输入 python 时 它会将我带到一个空行 而不会像在 Powershell 中一样显示它已输入 python 2 7 10 它没有给我错误消息 但 pytho
  • 由于不存在大文件而导致 git Push 错误

    当尝试推送到 git 时 我不断得到相同的结果 Counting objects 78 done Delta compression using up to 4 threads Compressing objects 100 67 67 d
  • Git refs/remotes/origin/master 没有指向有效的对象

    在上次合并到 Git 存储库的 master 分支后 我失去了克隆存储库的能力 Cloning into test repository remote Counting objects 126084 done remote Compress
  • git 命令显示所有(轻量级)标签创建日期

    是否有一个衬垫可以向我显示所有 git 轻量级标签的创建日期 就像是 git show tags format date 我在这个发现link http osdir com ml git 2009 05 msg01404 html适合我需求
  • 使用 TortoiseGit 创建 git 克隆时出现 SSL 证书问题

    我想在 TortoiseGit 的帮助下克隆 git 存储库 但出现错误 错误 SSL 证书有问题 请验证 CA 证书是否正常 细节 错误 14090086 SSL 例程 SSL3 GET SERVER CERTIFICATE 访问时证书验
  • 从 master 更改为新的默认分支 git

    这是一个场景 我们有一个默认的分支 Master 我们以此为基础 创建分支并向上推等等 我们现在创建了一个Develop分支Master并将其设置为默认开发分支 我想知道的是 我现在如何知道我的 git pull 命令是否通过命令行请求默认
  • Git 中的“分支提示”是什么?

    我正在学习 Git 并阅读专业 Git 书籍 https git scm com book en v2 书中和 Stack Overflow 上有时会使用术语 分支提示 但我找不到它的含义 分支提示是分支上的最后一次提交或最近一次提交 基本
  • 如何在本地快速拉取拉取请求

    在合并拉取请求之前 我想在本地快速拉取请求并运行测试并测试一些内容 我还不想点击 gihub 合并拉取请求 我以为滑轮会有帮助http ejohn org blog pulley http ejohn org blog pulley 但我收
  • hg 或 git 中的两个完整目录/项目之间存在差异?

    我继承了一个最初存储在 CVS 中的项目以及所有修订 我做了相当多的编辑 并且我试图比较我在原始目录中所做的所有更改 关于添加的新文件与旧文件 hg git 是否有某种实用程序可以让我进行树差异或类似性质的操作 也就是说 新添加的文件 删除
  • 如何使用 sourceTree 进行推送?

    我正在使用 sourceTree 管理 Unity 项目 版本 4 6 3 我只是想返回到上一次提交 右键选择 将当前分支重置到此提交 在使用模式中选择 硬 然后放回上一次提交 之后 我尝试去推 但没有成功 抱歉 当时我忘记了错误 之后 我
  • Eclipse 与外部 src 和 Web 内容文件夹链接或映射

    首先这不是问题但是我遇到的问题的解决方案浪费了4 5个小时来找到解决方案 请让我知道是否有更好的替代方法来使用 eclipse 项目管理外部 src 文件夹 我正在使用版本控制系统 GIT 来管理我的项目 还使用外部 Git 客户端 Sou
  • Git:压缩 master 上提交的最简单方法[重复]

    这个问题在这里已经有答案了 可能的重复 如何使用 git 将最后 X 次提交压缩在一起 https stackoverflow com questions 5189560 how can i squash my last x commits
  • 在centos上设置jenkins:ssh密钥和git的问题

    经历了很多问题 但似乎没有什么能解决我的问题 或者更准确地说 我不确定我是否正确地完成了整个事情 所以这里是 已安装centos 6 3操作系统 然后我按照以下指南安装詹金斯 https wiki jenkins ci org displa

随机推荐

  • WebShell工具特征流量分析合集

    目录 中国蚁剑流量抓包分析 配置代理 数据包分析 特征 中国菜刀流量抓包分析 数据包分析 特征 冰蝎流量抓包分析 配置代理 自带PhpWebshell分析 base64编码 数据包分析 弱特征 强特征 哥斯拉流量抓包分析 配置代理 生成we
  • SpringBoot异常处理

    我们在实际开发中 会因为各种问题而导致无法正常访问网址 网站的对象是群众 如果出现各种的报错信息 对于用户的体验是非常的不好的 所以我们需要对项目的内部进行异常处理 保证用户的体验舒爽 目录 1 异常处理一 默认异常处理机制 1 导入前端模
  • OneNet平台对接记录

    手头有一台支持中移动的OneNet平台的接口的烟感设备 刚好可以用来了解一下移动搭建的这套开放平台 OneNet平台简介 OneNet平台是中国移动物联网公司推出的物联网解决方案平台 对于集成了移动的物联网模块 NB IOT模块的设备 目前
  • Linux内核编译+Busybox文件系统制作(基础)

    本人小白纯属爱好折腾了好久 希望分享对小白有所帮助 linux 5 15 1 5 14 14版本都可以 编译linux 4 9 229 出错提示 cc1 error fcf protection is not compatible with
  • 十大C++实战项目,你会几个?【高薪必备】

    市面上有很多C 的实战项目 从简单到进阶 学习每个项目都可以掌握相应的知识点 如果你还是C 新手的话 那么这个C 的项目列表你可以拿去练手实战开发 毕竟学编程动手实践是少不了的 如果你不知道C 可以用来做哪些项目 可以应用在哪些地方 那么
  • 解决临时表空间不足

    第一种方法 数据库服务器切换到 oracle的根目录执行 su oracle oracle edzxbsdb source bash profile oracle edzxbsdb sqlplus as sysdba 进入sql SQL g
  • bat脚本-卸载并重新安装apk,强制关闭app并重新启动app

    卸载并重新安装apk echo off echo echo Get devices adb devices gt devices txt echo echo restartApp for f skip 1 tokens 1 delims i
  • 头条号如何快速涨100W+粉丝?

    最近一些做头条的朋友和我反映 最近头条的流量很不错 给账号的扶持很大 劝诫我们要抓住这次机会 01 提高爆文产出率 粗看是句废话 但其中藏有奥妙 依靠爆款优质内容涨粉看似 低效 但始终是最根本的途径 由此吸引的粉丝 忠诚度极高 小易这头条号
  • Go【gin和gorm框架】实现紧急事件登记的接口

    简单来说 就是接受前端微信小程序发来的数据保存到数据库 这是我写的第二个接口 相比前一个要稍微简单一些 而且因为前端页面也是我写的 参数类型自然是无缝对接 前端页面大概长这个样子 先用apifox模拟发送请求测试 apifox可以直接复制J
  • python 字符串长度

    Python是一种高级编程语言 它具有简单易学 可读性强 功能强大等特点 因此在各个领域都有广泛的应用 在Python中 字符串是一种非常重要的数据类型 它可以用来存储文本信息 比如说一段话 一篇文章等等 字符串的长度是指其中字符的个数 可
  • mysql查询 多门课程的平均成绩_数据分析中级 MySQL 任务6 总结复习

    0 入门 0 1 MySQL安装 Navicat安装 0 2 MySQL设置 Nacicat设置 包括链接点 unicode 8 0 3 创建表格 student course score teacher 1 简单查询 1 1 查询姓 猴
  • 2023年7月婴幼儿辅食市场数据分析(京东商品数据)

    随着人们对婴幼儿饮食健康的关注不断增加 市场对高品质 安全 营养丰富的辅食需求也日益旺盛 婴幼儿辅食市场增长放缓 但整体仍保持上升态势 鲸参谋数据显示 今年7月份 京东平台婴幼儿辅食市场的销量为1000万 同比增长约8 本月的总销额为3 7
  • ORM如何处理many -to -many的关系

    表之间的关联可以形成一张非常复杂的graph 但是我们对其进行抽象就会发现两个有关系的表之间只有两种可能 one to many 或者many to many many to many 时会加入一个关联表 所以这里讲述的是如何处理关联表映射
  • (一)pytorch单任务图像分类

    深度学习主要由 数据读取 网络模型 损失函数 优化器这四个部分构成 最开始不应该纠结于这些细节 应该先让代码跑起来再去研究代码是怎么写的 下面的代码只是训练部分的代码 并加上验证模型准确率的功能 1 项目分布 创建一个文件夹my data1
  • muduo_base库学习笔记7——无界队列、有界队列及线程池的实现

    BlockingQueue和BoundedBlockingQueue实质就是一个生产者消费者的模型 一 BlockingQueue 只用了一个条件变量notEmpty 不需要notFull 因为无界嘛不用考虑满的情况 条件变量需要跟一个互斥
  • (转)如何正确地处理时间

    from http www liaoxuefeng com article 0014132675721847f569c3514034f099477472c73b5dee2000 日期和时间在程序中应用广泛 每种程序开发语言都自带处理日期和时
  • 正则表达式简单判断

    正则表达式简单判断 1 正则表达式 d 非负整数 正整数 0 0 9 1 9 0 9 正整数 d 0 非正整数 负整数 0 0 9 1 9 0 9 负整数 d 整数 d d 非负浮点数 正浮点数 0 0 9 0 9 1 9 0 9 0 9
  • python操作word文档(python-docx)

    python操作word文档 python docx 1 效果图 1 1 python docx文档标题段落 等级 加粗 斜体 居中 效果图 1 2 python docx字体 加粗 斜体 居中 大小颜色 高亮颜色 效果图 1 3 pyth
  • MVS(多视图)

    1 传统方法通过几何 光学一致性构造匹配 估计深度 在缺少纹理或光照条件剧烈变化的场景中发生错误匹配 2 MVS流程 数据采集 稀疏重建 深度图估计 稠密重建 3 增量式SFM 输出的3D 点云 可以重新估计相对位姿 修正位姿结果 4 MV
  • git stash命令用法详解(临时存储代码)

    1 需求背景 有时候在开发过程中 在一个分支上 dev1 已经写了一部分代码 但是需要紧急切换到别的分支 dev2 上修改某个代码 这时候不能直接从dev1分支上切换到dev2分支上 提示你需要保存代码 此时dev1分支上的代码还没有写完