git stash 和 git stash pop

发布时间 2023-04-24 11:33:51作者: 郭慕荣

先来思考一下,为什么会使用 stash 命令?
在项目开发中,基本都会遇到这样的情况:本来你在自己的分支上愉快的开发功能A,但是突然加了一个优先级很高的需求B或者有bug需要先修复掉。但这个时候,你新做的功能A刚开发到一半,总不能先提交A再开发B,或者直接拉个新分支切过去吧?(可以倒是可以,但是不推荐)
在这里,我们就会使用到 git stash 命令。
1、git stash
暂存工作区修改的内容,可以stash多次,从最近一次的commit读取相关内容。
2、git stash pop
和 git stash 相反,git stash pop 是恢复暂存的工作区内容,值得注意的是, git stash pop 获取到的是最近一次stash进去的内容,也就是说如果stash两次或者多次,那么恢复的是最新一次stash进去的内容。
那要怎么查看stash了多少次呢?
3、git stash list
查询工作区所有stash的列表,最后的结果,可能如图:

可以看到,我本地是有6个暂存的。如果想恢复stash@{2},只需要:
4、git stash apply

git stash apply stash@{2}

如果不指定,直接 git stash pop 默认恢复的就是最新一次stash的哦。所以,如果暂存了多次,就要小心啦。
万一我心血来潮觉得之前暂存的都不需要了,想要清空怎么办?
5、git stash clear
清空stash