Git Stash 详解

Git Stash 详解

在使用 Git 进行版本控制时,经常会遇到需要临时保存当前工作状态的情况。git stash 命令就是为此设计的,它允许你将未提交的更改暂存起来,在处理其他任务或分支后,再恢复这些更改。

目录
  1. 基本概念
  2. 常用命令
  3. 示例和用法

1. 基本概念

git stash 主要用于以下情况:

  • 当你正在进行某个功能开发,但突然需要修复一个紧急问题。
  • 你的工作树中有未提交的更改,而你需要切换到其他分支或处理临时任务。

当使用 git stash 暂存更改时,Git 将将当前的工作目录和暂存区状态保存在一个临时区域,并恢复到最近一次提交的状态。你可以稍后通过 git stash popgit stash apply 来恢复这些更改。

2. 常用命令

以下是 git stash 的常用命令及其说明:

git stash

将当前未提交的更改暂存起来,并将工作目录和暂存区恢复到最近一次提交的状态。

git stash
git stash list

列出所有暂存的内容,每个暂存内容都有一个唯一的 ID(如 stash@{0}, stash@{1} 等)。

git stash list
git stash show

显示最近一次暂存的操作详情。可以添加 -p 选项来查看详细的 diff 内容。

git stash show [-p]
git stash apply <stash-id>

恢复指定的暂存内容,但不删除该暂存记录。

git stash apply [stash@{0}]
git stash pop

恢复最近一次暂存的内容,并同时从暂存列表中移除该记录。

git stash pop
git stash drop <stash-id>

删除指定的暂存内容。如果未指定 <stash-id>,则默认删除最近一次的暂存内容(stash@{0})。

git stash drop [stash@{0}]
git stash clear

清空所有暂存的内容。

git stash clear

3. 示例和用法

以下是一些具体的示例,帮助你更好地理解和使用 git stash 命令。

示例 1:暂存当前更改并恢复

假设你在开发一个新功能,并且有一些未提交的更改:

# 修改文件
vim file.txt# 暂存更改
git stash# 列出暂存内容
git stash list

此时,你的工作目录已经恢复到最近一次提交的状态。

示例 2:查看暂存内容详情

你可以使用 git stash show 查看暂存的详细信息:

git stash show -p
示例 3:恢复指定的暂存内容

假设你有多次暂存的操作,并且需要恢复其中某一次:

# 列出所有暂存内容
git stash list# 恢复指定暂存内容,但不删除记录
git stash apply stash@{1}# 或者恢复并删除暂存记录
git stash pop stash@{0}
示例 4:清理暂存内容

如果你不再需要某些暂存的内容,可以使用 git stash drop 删除:

# 清空所有暂存内容
git stash clear# 删除指定的暂存内容
git stash drop stash@{2}

总结

通过 git stash 命令,你可以方便地保存和恢复未提交的工作状态。这对于临时切换分支、处理紧急任务或清理工作目录非常有用。

希望这个详解对你有所帮助!如果你有任何问题,请随时提问。

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

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

相关文章

Windows下Dify安装及使用

Dify安装及使用 Dify 是开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力&#xff0c;轻松构建和运营生成式 AI 原生应用。比 LangChain 更易用。 前置条件 windows下安装了docker环境-Windows11安装Docker-CSDN博客 下载 Git下载…

Clang-Tidy协助C++编译期检查

文章目录 在Visual Studio中启用clang-tidyClang-tidy 常用的检查项readability-inconsistent-declaration-parameter-namemisc-static-assert 例子 C/C语言是一门编译型语言&#xff0c;比起python,javascript 这些&#xff0c;有很多BUG可以在编译期被排除掉&#xff0c;当然…

智能工厂规划学习——深入解读数字化工厂规划与建设方案

项目总体思路聚焦于通过智能制造和数字化工厂建设,来优化企业战略并提升信息化水平。首先,企业需学习先进国家已经验证的先进经验,并紧跟其正在变革的方向,以确保自身发展的前瞻性和竞争力。 在企业战略层面,企业正从以产品为中心的业务模式,逐步转变为以服务中心…

Go RPC 服务方法签名的要求

在 Go 中&#xff0c;RPC 方法的签名有严格的要求&#xff0c;主要是为了保证方法的调用能够通过网络正确地传输和解析。具体要求如下&#xff1a; 1. 方法必须是导出的 RPC 服务的方法必须是导出的&#xff08;即首字母大写&#xff09;。这是因为 Go 的反射机制要求服务方法…

上位机 日志根据类型显示成不同颜色

前言 在上位机软件开发中日志是一个很重要的信息。一方面显示系统的运行情况,另一方面主要用于排查软件BUG和设备问题的重要参考。为了方面识别日志类型最好的方式是使用不同的颜色进行区分。这样就一目了然了。 效果 实现代码 1.根据 ListBox 控件 进行扩展了一个自定义控件…

CMake解析参数用法示例

cmake_parse_arguments 是 CMake 中用于解析函数或宏参数的工具&#xff0c;特别适合处理带有选项&#xff08;OPTIONS&#xff09;、单值参数&#xff08;SINGLE_ARGS&#xff09;和多值参数&#xff08;MULTI_ARGS&#xff09;的复杂参数列表。以下是用法说明和一个示例&…

自定义JackSon配置

避免前端&#xff08;JavaScript&#xff09;处理大数&#xff08;如 Long、BigInteger&#xff09;时发生精度丢失问题&#xff0c;所以引入了自定义 Jackson 配置。 先看代码&#xff1a; /** 根据id修改员工信息*/PutMappingpublic R<String> update(HttpServletRequ…

Qt入门——什么是Qt?

Qt背景介绍 什么是Qt? Qt 是⼀个 跨平台的 C 图形用户界面应用程序框架 。它为应用程序开发者提供了建立艺术级图形界面所需的所有功能。它是 完全面向对象 的&#xff0c;很容易扩展。Qt 为开发者提供了 ⼀种基于组件的开发模式 &#xff0c;开发者可以通过简单的拖拽和组合…

Linux CentOS 安装Python 3.8.0

在 CentOS 上升级 Python 3.6.8 到 3.8.0&#xff0c;可以按照以下步骤操作&#xff1a; 1. 安装依赖 sudo yum groupinstall -y "Development Tools" sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel wget 如果遇到报错“File "/bin…

Python爬虫(11)Python数据存储实战:深入解析NoSQL数据库的核心应用与实战

目录 引言一、背景&#xff1a;为什么选择NoSQL存储爬虫数据&#xff1f;1.1 爬虫数据的核心挑战1.2 NoSQL数据库的核心优势 二、NoSQL数据库在爬虫中的核心应用2.1 MongoDB&#xff1a;文档型数据库的王者2.2 Redis&#xff1a;内存数据库的极致性能 三、NoSQL选型与性能优化策…

PCB设计工艺规范(一)概述

PCB设计工艺规范&#xff08;一&#xff09; 1.概述2.关键词及引用标准3.PCB板材要求3.1 确定PCB使用板材以及TG值3.2 确定 PCB 的表面处理镀层 4.热设计要求5.器件库选项要求 资料来自网络&#xff0c;仅供学习使用。 1.概述 规范产品的 PCB 工艺设计&#xff0c;规定 PCB 工…

proxychains4系统代理for linux(加速国内github下载速度,pip安装)

1.proxychains4代理安装&#xff1a; sudo apt-get install proxychains42.找到配置文件/etc/proxychains4.conf在[ProxyList]后面添加以下内容&#xff1a; socks5 127.0.0.1 10808 配置如下&#xff1a; 3.使用proxychains4(git clone)&#xff1a; proxychains4 git c…

Seata客户端@GlobalTransactional核心源码解析

文章目录 前言一、GlobalTransactional1.1、wrapIfNecessary1.2、handleGlobalTransaction1.3、invoke 二、总结 前言 Seata是阿里开源的分布式事务解决方案。在Spring传统的事务中&#xff0c;开启事务&#xff0c;执行事务&#xff0c;回滚/提交事务&#xff0c;统一由Spring…

pytorch搭建并训练神经网络

#从小白开始学习人工智能# #学习笔记# 工具&#xff1a;pytorch 一、基础概念 1.神经网络是什么&#xff1f; 神经网络是人类受到生物神经细胞结构启发而研究出的算法体系。又称为人工神经网络&#xff08;Artificial neural network&#xff09; 最简版神经网络结构图&a…

JavaEE-多线程实战01

Java 多线程入门&#xff1a;第一个多线程程序 在 Java 中&#xff0c;多线程编程是非常重要的一部分。本篇文章将通过示例&#xff0c;带你快速了解如何创建第一个多线程程序&#xff0c;并深入分析其运行机制。 1. 创建一个线程类并继承 Thread 在 Java 中&#xff0c;我们…

Android Compose 无网络状态处理全指南:从基础到高级实践

Android Compose 无网络状态界面处理全方案 引言 在移动应用开发中&#xff0c;网络连接不稳定是常见场景。优雅地处理无网络状态能显著提升用户体验。Jetpack Compose 提供了强大的工具来实现各种网络状态下的界面展示。本文将全面介绍在 Compose 中处理无网络状态的多种方案…

Arduino项目实战与编程技术详解

一、智能避障小车:超声波传感器与PWM电机控制 1.1 硬件需求与工作原理 智能避障小车的核心在于超声波传感器与电机驱动模块的协同工作。超声波传感器(HC-SR04)通过发射高频声波并接收回波来测量距离,而L298N电机驱动模块则负责控制两个直流电机的转向与速度。 1.1.1 超声…

Java在云计算、大数据、云原生下的应用和优势 - 面试实战

Java在云计算、大数据、云原生下的应用和优势 - 面试实战 第一轮提问 面试官&#xff1a;马架构&#xff0c;请简单介绍一下Java在云计算中的主要应用场景有哪些&#xff1f; 马架构&#xff1a;Java在云计算中的主要应用场景包括微服务架构设计、容器化部署&#xff08;如D…

数据库与大数据技术教程资料

概述 无论你是刚入门的技术新人&#xff0c;还是寻求突破的资深工程师&#xff0c;这份精心整理的电子书合辑将为你打开系统性学习的大门&#xff01;所有资源支持多端阅读&#xff0c;助力技术成长每一步资料已经整理好&#xff0c;喜欢的朋友请自取&#xff1a;https://pan.…

【Spring Boot 注解】@ConfigurationProperties

文章目录 ConfigurationProperties注解一、简介二、依赖引入三、基本用法四、主要特性五、激活方式六&#xff0c;优点七、与 Value 对比 ConfigurationProperties注解 一、简介 ConfigurationProperties 是 Spring Boot 提供的一个强大注解&#xff0c;用于将外部配置&#…