git stash 用法总结

目录

  • 1,介绍
    • 场景1:
    • 场景2:
  • 2,常用命令
    • 2.1,基础
    • 2.2,进阶
      • 1,存储时指定备注
      • 2,通过索引来操作指定的存储
      • 3,修改存储规则
    • 2.3,查看 stash 修改的具体内容

1,介绍

场景1:

如果正在A分支做开发,但 B 分支的代码测出bug需要修改,所以需要从A分支切换到B分支。

此时可这样处理:在A分支 add + commit 之后,再切换到 B 分支。但这样做有2个问题:

  1. 增加了不必要的 commit,虽然之后可以通过 git commit --amend 来修改,
  2. A 分支的功能写了一半,此时 commit,到时再切换回 A 分支时还得查看 commit 才能知道之前修改的内容,比较麻烦。

场景2:

在 A 分支开发到一半发现使用错分支了,应该在 B 分支开发,需要将当前已修改的内容得全部平移到B分支,同时不影响当前分支和版本库。


上面的情况,最好用的办法就是 stashes 存储栈,它的所有操作不会影响到版本库。

2,常用命令

stashes 存储栈,遵循后进先出

2.1,基础

# 查看帮助(所有命令列表)
git stash -h
# 将当前工作区和暂存区的代码存储到 stashes栈中。
git stash
# 取出最近的一条 stash,并在 stashes 栈中删除。
git stash pop
# 取出最近的一条 stash,stashes 栈中不删除。
git stash apply# 不取出,直接在 stashes 栈中删除最近的一条 stash
git stash drop

所以,git stash pop = git stash apply + git stash drop

# 查看 stashes 列表
git stash list
# 清空 stashes 栈
git stash clear

所以,

场景1,可以直接在 A 分支执行 git stash,在 B 分支开发完之后再切换到 A 分支,执行 git stash pop 即可。

场景2,可以直接在 A 分支执行 git stash,切换到 B 分支后执行 git stash pop 即可。

2.2,进阶

1,存储时指定备注

git stash save 测试stash
# or
git stash push -m 测试stash

缺图查看效果

2,通过索引来操作指定的存储

# 操作 stash@{1}
git stash pop 1
# or 这里一定要加引号,否则报错。
git stash pop "stash@{1}"

git stash applygit stash drop 同理。

3,修改存储规则

默认存储规则:不包括工作区新增文件(未被跟踪的文件)和 .gitignore 忽略的文件,包括工作区和暂存区的修改。

  1. -u--include-untracked 表示包括未被跟踪的文件。
git stash save 备注 -u
  1. -a--all 表示包括 .gitignore 忽略的文件。
git stash save 备注 -a
  1. -k--keep-index 表示不包括暂存区的修改。
git stash save 备注 -k

2.3,查看 stash 修改的具体内容

查看命令 git stash show 并没有介绍,是因为 vscode 自带的版本管理非常好用,可以详细的查看每个 stash 做了哪些修改。

可以看到不止是 stashes,每条 commit 也能随时查看。

在这里插入图片描述


以上。

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

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

相关文章

洛谷 P4552 [Poetize6] IncDec Sequence

挺好的一道思维题。 分析 因为是对区间修改,多次修改肯定会超时,很容易想到差分。 那么原题的对区间修改就可以转换为下面三个操作(均在差分数组中): 1. 任选一个数1 2. 任选一个数-1 3. 任选两个数1和-1 进一步考…

opencv-直方图均衡化

直方图均衡化是一种用于增强图像对比度的图像处理技术。它通过调整图像的灰度级别分布,使得图像中各个灰度级别的像素分布更均匀,从而提高图像的对比度。 在OpenCV中,你可以使用cv2.equalizeHist()函数来进行直方图均衡化。 以下是一个简单…

2023.11.22 -数据仓库的概念和发展

目录 https://blog.csdn.net/m0_49956154/article/details/134320307?spm1001.2014.3001.5501 1经典传统数仓架构 2离线大数据数仓架构 3数据仓库三层 数据运营层,源数据层(ODS)(Operational Data Store) 数据仓库层&#…

redis运维(十四) hash缓存案例

一 缓存案例 ① 需求 ② 个人理解 策略:不更新缓存,而是删除缓存大部分观点认为:1、做缓存不应该是去更新缓存,而是应该删除缓存2、然后由下个请求去缓存,发现不存在后再读取数据库,写入redis缓存 高并发场景下,到底先更新缓存还是先更…

ChatGPT/GPT4丨编程助手;AI画图;数据分析;科研/项目实现;提示词工程技巧;论文写作等

ChatGPT 在论文写作与编程方面也具备强大的能力。无论是进行代码生成、错误调试还是解决编程难题,ChatGPT都能为您提供实用且高质量的建议和指导,提高编程效率和准确性。此外,ChatGPT是一位出色的合作伙伴,可以为您提供论文写作的…

八、ffmpeg录制视频为yuv文件

前言 测试环境: ffmpeg的4.3.2自行编译版本windows环境qt5.12 图片的一些重要知识: RGB图片 位深度:每一个像素都会使用n个二进制位来存储颜色信息。每一个像素的颜色都是由红(Red)、绿(Green&#xff0…

java代码调用twitter-api用例实战

一、申请twitter开发者账号 首先先申请twitter开发者免费的API,要填写申请的内容,放心大胆地写,申请完,会提供免费的API接口。 以下是我申请到的三个免费API 申请完开始进行测试调用。 读官方文档账户认证那块:https…

Python基础教程: sorted 函数

嗨喽,大家好呀~这里是爱看美女的茜茜呐 sorted 可以对所有可迭代的对象进行排序操作, sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。 从新排序列表。 👇 👇 👇 更多精彩机密、教程…

【Mysql】[Err] 1293 - Incorrect table definition;

基本情况 SQL文件描述 /* Navicat MySQL Data TransferSource Server : cm4生产-200 Source Server Version : 50725 Source Host : 192.168.1.200:3306 Source Database : db_wmsTarget Server Type : MYSQL Target Server Version : 50725 File…

C语言指针相关练习题

​ C语言指针相关练习题 文章目录 C语言指针相关练习题题目一题目二题目三题目四题目五题目六题目七 题目一 #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int *ptr (int *)(&a 1);printf( "%d,%d", *(a 1), *(ptr - 1));return 0; }…

C++ 问题 怎么在C++11标准语法中调用C++20的类

一. 问题 在工作中,因为一个算法功能需要跟别的部门对接,他们提供了该算法的头文件.h,静态库.lib,动态库.dll。但是头文件中使用了C++20才有的新特性,如#include等,而本地使用的vs2015开发环境,只支持C++11标准语法,这种情况下,该怎么把该算法集成到本地项目中呢? …

PCIE链路训练-状态机描述1

状态机描述 Config.linkwidth.start&#xff1a; 1. &#xff08;1&#xff09;Linkup 0 状态机没有执行链路宽度的升级&#xff08;upconfiguration of the Link width&#xff09;&#xff1a;那么tx会在所有active的dsp上发送TS1&#xff0c;其中link num为具体内容&a…