stash的原理:
将本地没提交的内容(git commit的内容不会被缓存 但git add的内容会被缓存)进行缓存并从当前分支移除,缓存的数据结构为堆栈,先进后出

stash的参数详解:
#1. git stash/git stash save
git stash与git stash save是一样的,将没有提交的内容缓存并移除,而这条缓存名称为最新一次提交的commit -m的内容,如果没有本地提交则是拉远程仓库是的commit内容

git stash save "xxx"
加上自己的注解进行缓存

有个问题需要注意些:
stash 只会操作被git追踪的文件


stash后新增的文件并没有进入缓存,这是因为git还没有追踪这个新增的文件,所以需要进行git add [文件名]让git追踪这文件,再进行stash就可以对新文件进行操作


#2. git stash list
返回缓存的列表

#3. git stash pop
将堆栈中最新的内容pop出来应用到当前分支上,且会删除堆中的记录


看pop后面有一行是Dropped,在堆栈中删除了这个缓存
如果pop出来的内容有冲突,git会中断此次pop并告知你需要进行冲突解决
也可以指定堆栈中的记录通过在git stash pop后面加上git stash list中的名称(举例:git stash pop stash@{0})

#4. git stash apply
与pop相似,但他不会在堆栈中删除这条缓存,适合在多个分支中进行缓存应用
也可以进行指定git stash apply stash@{0}

#5. git stash drop/git stash clear
git stash drop [名]删除单个缓存 举例git stash drop stash@{0}
git stash clear全清

#6. git stash show
git stash show [名]显示与当前分支差异 举例git stash show stash@{0} 加上-p可以看详细差异

#7. git stash branch
指定或最新缓存创建分支

posted on   ygunoil  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2020-07-14 webpack源码讲解教程
2020-07-14 Vue.js源码解析教程(某课网)(含Vue3.0源码分析)
2020-07-14 encodeURI()和encodeURIComponent() 区别
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示