git命令每日总汇-git stash缓存储藏的使用

2024-03-09 08:08

本文主要是介绍git命令每日总汇-git stash缓存储藏的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

有时你会遇到这样的事情,当你正在进行项目中某一部分的工作,里面的东一处于一个杂乱的状态,而你想转到其他分支上进行工作,问题是你不想提交进行了一半的工作,否则以后无法回到这个工作点,或者你有commit提交然后push的,但是其中有几个修改需要保留使用,但是不用提交和push,解决这些问题的办法就是git stash,“git stash”可以获取你工作目录的中间状态(也就是你修改过的被追踪的文件和暂存的变更,并将它保存到一个未完结变更的堆栈中,随时可以重新应用)

储藏你的工作

1、储藏

(1)当你所在的分支有未提交的文件时,你想切换到其他分支

(2)你在自己的分支commit后,有几个文件不需要commit和push,而这几个文件需要保留

以上两种情况可以使用git stash, 然后git status 查询后,会发现没有待commit和add的,非常干净

这里推荐使用 :git stash save 说明信息

如果直接使用git stash 系统会自动分配说明信息,这里自己添加会方便自己查询的时候知道

2、查看储藏:

git stash list 会查看所有的储藏

显示:

stash@{0}: WIP on master: 2fa5745 ***********

stash@{1}: WIP on master: 5fa5748 ***********
stash@{2}: WIP on master: 3fa5743 ***********

这里显示所有的储藏列表

注: 最近的是stash@{0}

3、 应用储藏

git stash apply ------应用最近的一次储藏

git stash apply stash@{1} ------应用某一个储藏

对文件的变更被重新应用,但是被暂存的文件没有被重新暂存,想这样的话,必须在执行git stash apply 的时候后面带一个 --index 选项,来告诉命令重新应用被暂存的变更,如果这么做,那就回到了原来的位置:git stash apply --index

apply 选项只尝试应用储存的工作——储藏的内容仍然在栈上,要移除它,

执行:git stash drop 名字,例如:git stash drop stash@{1}

如果想删除所有的储藏,可以执行:git stash clear

你也可以执行:git stash pop 来重新应用储藏,同时立刻将其从堆栈中移走

4、取消储藏

在某些情况下,你可能想应用储藏的修改,在进行了一些其他的修改之后,又要取消之前所应用储藏的修改,但是git没有类似于git unapply 的命令,但可以通过取消该收藏的补丁达到同样的效果。

git stash show -p stash@{1} | git apply -R

如果不指定某个储藏,git会选择最近的储藏:git stash show -p | git apply -R

如果想把上面的命令设置成 git stash-unapply

执行:git config --global alia.stash-unapply ‘!git stash show -p | git apply -R’

5、 如果你储藏了一些工作,暂时不去理会,然后继续在你储藏分支上工作,你在重新应用工作时,可能会碰到一些问题,如果尝试应用的变更是针对一个你那之后修改过的文件,你会碰到一个归并冲突,并且必须去化解它,如果你想用更方便的方法来重新检验你储藏的变更, 你可以运行 git stash branch ,这会创建一个新的分支,检出你储藏工作时的所处的提交,重新应用你的工作,如果成功,将会丢弃储藏。

例:git stash branch 新分支名

这是一个很棒的捷径来恢复储藏的工作然后在新的分支上继续当时的工作。

这篇关于git命令每日总汇-git stash缓存储藏的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/790049

相关文章

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

Java使用MethodHandle来替代反射,提高性能问题

《Java使用MethodHandle来替代反射,提高性能问题》:本文主要介绍Java使用MethodHandle来替代反射,提高性能问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录一、认识MethodHandle1、简介2、使用方式3、与反射的区别二、示例1、基本使用2、(重要)

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

MySQL 事务的概念及ACID属性和使用详解

《MySQL事务的概念及ACID属性和使用详解》MySQL通过多线程实现存储工作,因此在并发访问场景中,事务确保了数据操作的一致性和可靠性,下面通过本文给大家介绍MySQL事务的概念及ACID属性和... 目录一、什么是事务二、事务的属性及使用2.1 事务的 ACID 属性2.2 为什么存在事务2.3 事务

使用Python实现网页表格转换为markdown

《使用Python实现网页表格转换为markdown》在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,本文将使用Python编写一个网页表格转Markdown工具,需... 在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,以便在文档、邮件或

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur