git储存
约 495 字大约 2 分钟
2025-06-06
git stash
将本地未提交代码作为一个本地缓存。作用范围为本地工作区以及本地暂存区。
使用场景
当正在
dev
分支上开发某个项目,这时项目中出现一个bug
,需要紧急修复,但是正在开发的内容只是完成一半,还不想提交,这时可以用git stash
命令将修改的内容保存至堆栈区,然后顺利切换到hotfix
分支进行bug
修复,修复完成后,再次切回到dev
分支,从堆栈中恢复刚刚保存的内容。由于疏忽,本应该在
dev
分支开发的内容,却在master
上进行了开发,需要重新切回到dev
分支上进行开发,可以用git stash
将内容保存至堆栈中,切回到dev
分支后,再次恢复内容即可。
命令
# 保存当前工作区、暂存区的所有未提交代码
# 执行存储时,添加备注,方便查找
git stash save “save message”
只有git stash
也是可以的,但查找时不方便识别。
查看
# 查看stash了哪些存储
git stash list
# 显示缓存的详细信息,n为第几个,默认数第一个,也就是0
git stash show stash@{0}
恢复
git stash pop
命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash
删除,并将对应修改应用到当前的工作目录下,默认为第一个stash
,即stash@{0}
,如果要应用并删除其他stash
,命令:
git stash pop stash@{n}
其中,n
为第几个stash
,默认为第一个,即0
。
git stash apply stash@{n}
与git stash pop
不同的是,git stash apply
命令不会将缓存堆栈中的stash
删除,而git stash pop
会将缓存堆栈中的对应stash
删除。
删除
# 删除指定的缓存
git stash drop stash@{n}
# 删除所有缓存
git stash clear