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