【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操作
相关推荐
你的人类朋友32 分钟前
说说git的变基
前端·git·后端
程序设计实验室1 小时前
在Windows上将git与ssh-agent搭配使用,再也不用输入git密码了
windows·git
Clownseven1 小时前
Gitea Webhook教程:实现git push后自动部署更新网站 (CI/CD入门)
git·ci/cd·gitea
兔老大RabbitMQ3 小时前
git pull origin master失败
java·开发语言·git
码农小白-RMS10 小时前
cursor-执行git指令(vscode同理)
git
爱喝矿泉水的猛男13 小时前
Git Commit 提交信息标准格式
git·commit
℘团子এ13 小时前
git中,将新项目推送到新建的远程仓库
git
gitboyzcf13 小时前
Git 常用命令
前端·git·后端
哈里谢顿13 小时前
Git 最实用的四个还原命令详解
git
xiAo_Ju1 天前
git hooks配置
git