用好git stash,工作超nice

news2024/9/23 2:09:35

一、介绍

如果修改后的内容还不想commit,就可以用git stash命令。它会将工作区和暂存区中的修改(也就是还没commit的内容)都会被保存到堆栈里,并在之后恢复到任意指定的分支上。

二、应用场景

1、在分支a进行开发feature 1时,突然需要紧急修改之前的bug。这时就可以将当前feature 1的相关内容stash起来,修改完bug后,再恢复刚刚的内容;

2、本来需要在dev分支上进行开发的内容,却不小心在master分支上进行。这时可以先stash,切换回dev分支后再pop出来即可。

三、常用命令

1、git stash

会将工作区和暂存区,也就是还没commit的内容都会被保存到堆栈里。

2、git stash pop

恢复堆栈中最新的一条内容,同时该内容也会从堆栈中删去。相当于剪切操作。
当堆栈中有多条内容时,可以通过加参数–index number来恢复特定的内容。比如恢复index=1的内容:

git stash pop --index 1

3、git stash apply

类似于git stash pop,恢复堆栈中最新的一条内容,只不过不会将内容从堆栈中删除。相当于复制操作。
适合用于多个分支的场景。

4、git stash save “note”

**stash时,如果不做一些备注,时间久了很容易忘记。而且堆栈有多条内容时也容易混淆。**所以推荐在stash时加上备注。

5、git stash list

查看堆栈中的所有内容,方便下一步操作。
特别是堆栈中存在多个内容时,可以获取内容对应的index号。

6、git stash drop

默认会删除最近存入堆栈的内容,同样也可以通过添加参数–index number 来选择性删除内容。
此处的number可以通过git stash list获得。

有时候不小心误删了怎么办?
不用担心,通过下面几步轻松找回!

a.找到删除内容的ID号。

用git stash drop命令后,会出现以下提示:

Dropped refs/stash@{0} (acf4577151935a7259937ed522901fdcde5f0e0b)

其中acf4577151935a7259937ed522901fdcde5f0e0b就是删除的ID号。
当然你也可以通过以下命令来查找最近一些删除的ID号,只不过需要加载一会儿。

git fsck --lost-found

在这里插入图片描述

b.查看丢弃内容是否为你要的内容:
可以直接通过

git show acf457 -p

查看修改情况,看是不是你刚刚drop的内容。

c.通过git stash apply ID 恢复
比如:

git stash apply acf457 

通过上面三步,误删的内容就可以找回来啦~

7、git stash push

git stash命令会将当前工作区和暂存区中的内容一股脑压入堆栈中。但有时候我们只是想要压入某一个或几个文件,这时就可以通过下面命令选择性压入:

git stash push <file1> <file2> <file3>

其中文件之间需要用空格隔开。
其实一开始提到的git stash是git stash push的缩写。不过在进行此操作时,需要写全命令。

8、git stash clear

移除堆栈中所有的内容。

9、git stash show

显示堆栈中最新内容与当前目录内容的粗略差异。
如果想要更加看到更加详细的内容,可以加上-p

git stash show -p

如果堆栈中存在多个内容,而你想要看到之前的某一个内容和当前目录的具体差异,可以通过

git stash show --index number -p

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

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

相关文章

2、Orangepi Zero2刷机和系统启动

目录 2.1 工具安装 2.2 刷机 2.3 登录系统 2.4 修改登陆密码 2.5 网络配置 2.6 SSH登陆开发板 就像买了电脑&#xff0c;出厂带有 windows 操作系统&#xff0c;才算是正在的电脑&#xff0c;开发板需要烧写对应的系统固件&#xff0c;才 能正常发挥作用 工具 Orangepi Zero2…

【异常解决】浏览器无法访问此网站ERR_UNSAFE_PORT/网页可能无法连接,或者它已永久性地移动到了新网址问题解决方案

浏览器无法访问此网站ERR_UNSAFE_PORT问题解决方案 一、问题描述二、问题原因三、解决方案3.1 方案1修改服务器访问端口号&#xff08;推荐&#xff09;3.2 方案2修改浏览器设置3.2.1 Chrome浏览器3.2.2 Firefox浏览器3.2.3 Edge浏览器 一、问题描述 访问某一个特定的网址之后…

Flume系列:Flume Channel使用

目录 Apache Hadoop生态-目录汇总-持续更新 1&#xff1a;Kafka Channel 2&#xff1a;File Channel 3&#xff1a;Memory Channel Apache Hadoop生态-目录汇总-持续更新 系统环境&#xff1a;centos7 Java环境&#xff1a;Java8 1&#xff1a;Kafka Channel Kafka Chan…

vim键位图+vim基本操作命令表

前言&#xff1a;本章末vim的基本操作命令总结的比较全&#xff0c;建议收藏起来&#xff0c;方便后面使用时作字典查找。 目录 一、什么是vi(vim)&#xff1f; vim键盘 二、vim工作模式 1&#xff09;命令模式 2&#xff09;编辑模式 3&#xff09;末行模式 4&#xf…

「2024」预备研究生mem-等差数列基础

一、等差数列基础 二、课后练习题 思路&#xff0c;知道a1和d &#xff0c;就可以知道an,sn

Kafka 集成 SpringBoot, 快速入门

一、kafka的生产者和消费者 1. 生产者发送消息的流程 2. 消费者接收消息的流程 二、 java 代码实现 1. 添加依赖&#xff1a; <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka_2.12</artifactId></dependency>2. 实现…

回溯算法例题(剪枝策略)

目录 1.组合1.77. 组合2.216. 组合总和 III3.17. 电话号码的字母组合4.39. 组合总和5.40. 组合总和 II 2.分割1.131. 分割回文串2.*93. 复原 IP 地址 3.子集1.78. 子集2.90. 子集 II 4.排列1.46. 全排列2.47. 全排列 II 5.棋盘问题1.51. N 皇后2.37. 解数独 6.其他1.491. 递增子…

系统移植 5-10

1.进入linux内核源码目录下&#xff0c;打开Makefile文件&#xff0c;搜索vmlinux&#xff0c;找到cmd_link-vmlinux命令&#xff0c; 1179 cmd_link-vmlinux \ 1180 $(CONFIG_SHELL) $< "$(LD)" "…

不同应用场景瑞芯微RK3568主板方案定制

随着物联网和智能设备的迅猛发展&#xff0c;瑞芯微RK3568主板方案作为一种高性能的系统System-on-a-chip&#xff08;SoC&#xff09;&#xff0c;已经成为嵌入式系统、智能家居设备和工业自动化设备等应用场景的首选方案。定制瑞芯微RK3568主板方案可以满足不同应用场景的需求…

科技云报道:ChatGPT应用爆火,安全的大数据底座何处寻?

科技云报道原创。 毫无疑问&#xff0c;AIGC正在给人类社会带来一场深刻的变革。 而剥开其令人眼花缭乱的华丽外表&#xff0c;运行的核心离不开海量的数据支持。 ChatGPT的“入侵”已经引起了各行各业对内容抄袭的担忧&#xff0c;以及网络数据安全意识的提高。 虽然AI技术…

线程的原子性、可见性、有序性及线程安全知识整理

要想保证线程安全&#xff0c;必须同时满足原子性、可见性、有序性。 一、定义 1.1 原子性 一个操作或者多个操作&#xff0c;要么全部执行&#xff0c;并且执行的过程不会被打断&#xff0c; 要么就全部不执行&#xff08;一个操作是不可被分割的&#xff09;。 Java中实现…

JavaScript经典教程(七)-- JavaScript初级

190&#xff1a;JavaScript初级内容 - DOM查询、插入内容、赋予样式等 1、DOM操作 DOM&#xff1a;节点&#xff0c;也就是html中的元素&#xff1b; DOM操作&#xff1a;其实就是节点元素的方法&#xff1b; &#xff08;1&#xff09;innerHTML - 返回元素内容 同时也可以…

【JUC基础】05. Synchronized和ReentrantLock

1、前言 前面两篇中分别讲了Synchronized和ReentrantLock。两种方式都能实现同步锁&#xff0c;且也都能解决多线程的并发问题。那么这两个有什么区别呢&#xff1f; 这个也是一个高频的面经题。 2、相同点 2.1、都是可重入锁 什么是可重入锁&#xff1f; 可重入锁&#xff0…

Mysql查询字符串中某个字符串出现的次数

目录 1.查单个字符出现的次数2.查多个字符出现的次数3.函数讲解 1.查单个字符出现的次数 比如我想查how do you do 字符串当中出现d的次数&#xff1a; 第一眼看上去有点懵&#xff0c;首先mysql并没有直接计算出现字符次数的函数&#xff0c;所以才使用了下面这种方式&#x…

【排错记录】国产航顺HK32F030M驱动TM1624四位数码管显示

问题描述&#xff1a; 航顺单片机 HK32F030MF4P6用数码管显示驱动TM1624问题描述。 航顺单片HK32F030MF4P6的PC3/PC4/PC5引脚分别连接数码管驱动TM1624的DIN/CLK/STB;当单独使用HK32F030MF4P6单片机最小系统和TM1624数码管模块的时候部分最小系统板能驱动数码管正常显示&…

Centos 7 安装系列(11):Kibana

一、系统环境 操作系统&#xff1a;Centos 7 已安装环境&#xff1a;ElasticSearch 8.6.2 二、安装 需要注意的是&#xff1a;Kibana的版本需要和Elasticsearch保持一致。 2.1 下载并解压安装包 cd /opt yum install -y wget wget https://artifacts.elastic.co/downloads…

马哈鱼SQLFLow对SQL Server OUTPUT Clause 的数据血缘分析

SQL Server OUTPUT Clause 会对 SQL 语句的血缘分析产生影响&#xff0c;如果忽略对 OUTPUT Clause 的分析&#xff0c;那么将漏掉一些关键的数据血缘关系&#xff0c;从而影响数据血缘分析的准确性&#xff0c;进而影响组织的数据治理质量。 Gudu SQLFlow 可以对 SQL Server …

Linux下安装MySQL 5.7

安装MySQL 5.7 1、通过命令下载 wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz 2、解压 tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql/ 3、简化 cd /usr/local mv mysql-5.7.36-linux-…

Hibernate 基本操作、懒加载以及缓存

前言 上一篇咱们介绍了 Hibernate 以及写了一个 Hibernate 的工具类&#xff0c;快速入门体验了一波 Hibernate 的使用&#xff0c;我们只需通过 Session 对象就能实现数据库的操作了。 现在&#xff0c;这篇介绍使用 Hibernate 进行基本的 CRUD、懒加载以及缓存的知识。 提示…

干货|做实验到底应该选取多少被试?

Hello&#xff0c;大家好&#xff01; 这里是壹脑云科研圈&#xff0c;我是喵君姐姐~ 我们都知道心理学实验一般是通过分析被试的一系列数据从而得到相应的结论的。那么&#xff0c;在进行心理学实验的时候需要多少被试&#xff1f;怎么去看实验的被试量够不够呢&#xff1f;…