Git Stash:临时保存和切换工作状态的利器

news2024/10/7 16:19:45

Git是我们日常工作中不可或缺的版本控制系统。它提供了许多强大的功能,其中之一是Git Stash(暂存)。Git Stash可以帮助我们在切换分支或保存未完成的工作时,临时保存当前的修改,以便稍后重新应用。本文将介绍Git Stash的用途、常见场景以及如何使用该功能。

Git Stash的应用

Git Stash的用途非常广泛,特别适用于以下几种常见场景:

  1. **分支切换:**当你正在进行某个分支上的开发工作,但需要紧急修复其他分支的bug或进行其他任务时,你可以使用Git Stash来保存当前分支上的修改。这样,你可以切换到其他分支,完成紧急任务后再回到原来的分支,并通过恢复Stash来重新应用你之前保存的修改。
  2. **临时保存工作状态:**有时候你可能需要中断当前的工作,但又不想提交未完成的修改。使用Git Stash可以将你的修改临时保存起来,以便稍后继续工作。这在你需要暂时切换到其他任务、参与会议或处理其他紧急问题时非常有用。
  3. **解决代码冲突:**当你在合并分支或拉取远程更新时遇到代码冲突,你可以使用Git Stash来保存当前的修改,并将工作区恢复到干净的状态。然后你可以解决冲突,再重新应用你之前保存的修改。

Git Stash的使用

下面是一些常用的Git Stash命令:

  • git stash:保存当前工作区的修改,但不保存已提交的修改;
  • git stash save "message":保存当前工作区的修改,并添加一条说明信息;
  • git stash list:列出所有储藏记录;
  • git stash apply [stash@{n}]:应用某个储藏记录,并将其从储藏列表中删除;
  • git stash pop [stash@{n}]:应用某个储藏记录,并将其从储藏列表中删除,同时恢复当前工作目录到储藏时的状态。

假设我们现在修改index.html文件,并将index.html文件git add index.html 提交到暂存区,再执行git ls-files 查看暂存区的文件结果如下图:

现在我们临时保存index.html修改状态git stash,储存记录中就会多一条记录:

当然,工作中不能这么随意,不然记录变多不便于找到自己想恢复的记录,通常使用git stash save "message"命令:

恢复保存的修改有两种常见的方法可以恢复保存的修改。一种是使用git stash apply命令,它会重新应用最新的stash,并保留stash的副本。另一种是使用git stash pop命令,它会应用最新的stash,并将其从stash列表中删除。

如果你有多个stash,你可以通过git stash apply stash@{n}命令来应用特定的stash,其中n是stash的索引号。

一旦你不再需要某个stash,你可以使用git stash drop命令将其从stash列表中删除。

增强 Git 的VS Code 扩展

我想多数人不喜欢在黑白的窗口敲命令,我们可以通过VS Code 扩展来增强使用 Git,我推荐自己常用的一个Git插件为GitLens,安装如下图:

安装后,我们就能直观地看到Git Stash所有储藏记录。

这样,添加保存临时工作状态,也就是鼠标点点的事情。

还有其他的操作功能,不过多描述,大家安装后稍微点点都能学会。

总结

Git Stash是一个强大而灵活的工具,可帮助开发人员在切换分支、保存临时工作状态和解决代码冲突时更加高效地管理修改。通过合理利用Git Stash,我们可以处理多任务开发、合并变更和处理紧急情况,从而提高工作效率并确保代码的完整性。掌握Git Stash都是一个值得推荐的技巧,它能为你的版本控制流程带来便利和灵活性。

关注公粽号【凌览社】回复"666",拉您进【人类高质量前端交流群~】
更多文章链接:https://linglan01.cn/about

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

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

相关文章

零信任沙盒,加密沙盒,防泄密沙盒

场景描述 随着云计算、移动互联、物联网等新技术的发展,传统的安全边界变得越来越模糊,访问控制模式局限性也越来越明显。企业需满足员工在任意时间、地点对企业内部进行访问的需求;服务器之间各自为界、相互独立,缺乏统一的安全…

Docker-consul容器服务更新与发现

目录 一、consul简介 1、什么是服务注册与发现 2、什么是consul 3、consul的关键特性 二、consul部署 1、consul服务器部署 1.1 建立consul服务 2、查看集群信息 3、通过http api 获取集群信息 三、registrator部署 1、安装Gliderlabs/Registrator 2、测试服务发现…

QT项目打包脚本

QT项目打包脚本 项目修改频繁,肯定不能手动在开始,菜单,找到相关环境,再输入windeployqt 打包。这里提供一个脚本用于打包。 按Wins,输入CMD D:# 创建打包用的目录 md MyProjectcd D:\MyProject# 拷贝文件 copy D:…

Redis(四)多级缓存

文章目录 一、传统缓存存在的问题二、多级缓存方案三、JVM进程缓存案例演示: 四、Lua语法入门Lua语言入门 五、多级缓存(一)安装OpenResty(二)OpenResty入门(三)请求参数处理(四&…

2023年中国塑形内衣市场发展概况分析:五年增长率高达56%,经济与安全兼具的塑身内衣市场不容小觑[图]

塑身内衣可以重修、重塑身体曲线。塑身内衣,能够马上雕塑您的身材,美好身段表露无遗,塑身内衣在呵护您的身体之下,恰到好处的集中胸部,雕塑腰部,以及提臀作用,缔造自然的性感窈窕美态。 塑身内…

4D5D影院设备发展前景7D互动影院体验馆应用

5D影院设备发展前景广阔。随着科技的不断进步,5D影院设备在电影行业中的应用越来越广泛。5D影院设备以其独特的沉浸式体验和互动性,吸引了大量观众。未来,随着技术的不断创新和成本的降低,5D影院设备将会得到更多的应用和推广。 首…

9月《中国数据库行业分析报告》已发布,47页干货带你详览 MySQL 崛起之路!

为了帮助大家及时了解中国数据库行业发展现状、梳理当前数据库市场环境和产品生态等情况,从2022年4月起,墨天轮社区行业分析研究团队出品将持续每月为大家推出最新《中国数据库行业分析报告》,持续传播数据技术知识、努力促进技术创新与行业生…

算法题:摆动序列(贪心算法解决序列问题)

这道题是一道贪心算法题,如果前两个数是递增,则后面要递减,如果不符合则往后遍历,直到找到符合的。(完整题目附在了最后) 代码如下: class Solution(object):def wiggleMaxLength(self, nums):…

获得京东商品描述 API (商品详情图)

电商卖货,所有产品信息都是通过商品的主图、详情图、商品描述展示出来的。做一个简洁大方又能把产品特点介绍清楚的商品详情信息非常重要。在现有的淘宝京东拼多多等平台,有大量的商品数据,基本你做什么产品都能找到同类的产品信息。如果能够…

Spring5应用之整合MyBatis

作者简介:☕️大家好,我是Aomsir,一个爱折腾的开发者! 个人主页:Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏:Spring5应用专栏_Aomsir的博客-CSDN博客 文章目录 参考文献前言为什…

腾讯云2023年双十一优惠活动整理汇总

随着双十一的到来,各大云服务厂商也开始纷纷推出优惠活动,其中腾讯云作为国内知名的云服务提供商,自然也不例外。那么,腾讯云双十一优惠活动都有哪些呢?本文将会为大家整理汇总,方便大家了解和选择。 一、腾…

Java拆装箱

拆装箱 基本数据类型和包装类的区别 包装类是对象,基本数据类型不是。包装类型是引用的传递,基本数据类型是值的传递声明方式不同:包装类通过new关键字,基本数据类型不需要通过new存储位置不同:包装类型存储在堆内存…

Flutter 打包 windows桌面端可执行文件

简单一说 因为个人兴趣爱好,在写一个跨平台工具。为了省事没去官网看文档,直接翻阅各大博客网站,一个简单的命令,博客写的内容比较复杂。为了方便自己和有需要同学,简单做一个记录。 Flutter提供了一种方便命令行的方…

将网站域名访问从http升级到https(腾讯云/阿里云)

文章目录 1.前提说明2.服务器安装 docker 与 nginx2.1 安装 docker🍀 基于 centos 的安装🍀 基于ubuntu 2.2 配置阿里云国内加速器🍀 找到相应页面🍀 创建 docker 目录🍀 创建 daemon.json 文件🍀 重新加载…

安全与隐私:直播购物App开发中的重要考虑因素

随着直播购物App的崭露头角,开发者需要特别关注安全性和隐私问题。本文将介绍在直播购物App开发中的一些重要安全和隐私考虑因素,并提供相关的代码示例。 1. 数据加密 在直播购物App中,用户的个人信息和支付信息是极为敏感的数据。为了保护…

【K8S系列】深入解析k8s 网络插件—kube-router

序言 做一件事并不难,难的是在于坚持。坚持一下也不难,难的是坚持到底。 文章标记颜色说明: 黄色:重要标题红色:用来标记结论绿色:用来标记论点蓝色:用来标记论点 在现代容器化应用程序的世界中…

【揭秘】那些你可能没发现的高质量免费学习资源网站

在我们的日常生活和工作中,我们总会遇到需要学习和提升自己的时候,但往往在寻找学习资源的过程中,我们会遇到一些问题。比如,有些网站的资源都是付费才能观看,让我们感到困扰。其实,只是你还没找对资源网站…

Python数据分析实战-实现卡方检验(附源码和实现效果)

实现功能 使用scipy.stats模块中的chi2_contingency函数来执行卡方检验(Chi-square test)。卡方检验用于检验两个或多个分类变量(组别)之间是否存在显著关联(差异)。 例1:从某中学随机抽取两个…

指针定义等概念

1.为了能正确访问数据,所以我们就应该给每个字节编号,每个字节编号是唯一的。内存中的字节编号都是地址或者指针。 2.c语言中用一个变量存放指针就是指针变量,指针变量的值某一个变量的地址。 m是指针变量名,x是被指向的变量的变…

数据输出流和数据输入流

数据输出流 package dataOutputSmTest;import java.io.DataOutputStream; import java.io.FileOutputStream; import java.io.OutputStream;public class dataOS {//掌握数据输出流public static void main(String[] args) {//创建一个数据输出流 包装低级的字节输出流try(Dat…