【Git】git stash

目录

Git的stash命令是一个非常实用的功能,它允许开发者临时保存工作目录和暂存区的更改,以便能够切换到其他分支或进行其他操作,而不会丢失当前的修改。以下是git stash的详细解析:

基本概念

  • 工作目录:当前开发者正在工作的目录,包含了所有已修改但尚未提交的文件。
  • 暂存区(Staging Area):也称作索引(Index),是提交前的一个临时区域,用于存放将要被提交的更改。
  • Stash:一个用于临时存储工作目录和暂存区更改的栈(Stack)。

参数详解

list

语法 git stash list [<options>] ,与git log功能类似,列出储藏列表,options 参数可以参考git log的参数

show

语法 git stash show [<options>] [<stash>],和git show功能类似

save

语法 git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet] [-u|--include-untracked] [-a|--all] [<message>]

  1. 将本地更改保存到新的储藏队列,
  2. [-p|--patch] 以patch模式提交,允许选择需要保存的块,具体参考git add的--patch模式
  3. [-k|--[no-]keep-index] [不]保留 index 序号
  4. [-q|--quiet] 静默执行,即不显示结果
  5. [-u|--include-untracked] 储藏时包括未跟踪的文件
  6. [-a|--all] 储藏所有文件,包括忽略的文件
    建议使用push代替save
push

push可以讲其中几个文件贮藏

语法 git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet] [-u|--include-untracked] [-a|--all] [-m|--message <message>] [--] [<pathspec>...]]

  1. 将本地修改保存到新的储藏队列,用法与save基本一致,多了[--] [<pathspec>...]可选参数
  2. [--] [<pathspec>...] 使用路径匹配,只有路径匹配下的文件会被储藏,通常用于储藏部分文件
  3. push选项可以被省略,以便快速保存,省略push时,不能使用参数
pop|apply

语法 git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>],取出指定的队列,默认取出最新的队列,pop与apply的区别在于,pop在取出队列后会删除stash中的队列,apply则不会删除

在vs 中对应关系如下:

pop=弹出->应用当前贮藏并删除

appy=应用->仅应用

drop

语法 git stash drop [-q|--quiet] [<stash>],删除某个储藏队列,默认删除最新的储藏队列

clear

语法 git stash clear,删除所有储藏

branch

语法 git stash branch <branchname> [<stash>],使用某个储藏队列建立分支,同时删除该队列

[<stash>]指stash队列的名称,形式为stash@{id}

参考文章

  1. git stash参数介绍
  2. git stash操作
相关推荐
洛小豆17 分钟前
Git打标签仓库看不到?她说:豆子,你又忘了加 --tags!
git·后端·github
好奇的菜鸟3 小时前
理解 Git 命令 `git reset --hard origin/pre`:版本回退的“利刃”与使用禁忌
大数据·git
春生野草3 小时前
git的使用
git
今天头发还在吗3 小时前
解决 Git 推送冲突:使用 Rebase 整合远程更改
大数据·git·elasticsearch
蓝色空白的博客5 小时前
Git代码下拉更新推送操作用法整理
git
风也温柔☆7 小时前
IDEA/WebStorm 切换分支(超简单)
git·intellij-idea·webstorm·切换分支·checkout
Jammingpro18 小时前
【Git版本控制】Git初识、安装、仓库初始化与仓库配置(含git init、git config与配置无法取消问题)
java·git·elasticsearch
shark1 天前
无需放弃变更、关闭占用程序!用暂存区和 git底层命令实现 Git 变更备份
git·shell·自动化运维
_poplar_1 天前
15 【C++11 新特性】统一的列表初始化和变量类型推导
开发语言·数据结构·c++·git·算法
北城笑笑1 天前
Git 10 ,使用 SSH 提升 Git 操作速度实践指南( Git 拉取推送响应慢 )
前端·git·ssh