Git stash之后代码去哪了?怎么恢复? UP主~楠楠 提问于 2026-03-18 08:58:21 阅读 51 工具 我刚才在开发一个新功能,突然要切回主分支修个紧急bug,就用了 git stash 把当前改动存起来了。结果切回来再 git stash pop,发现之前写的函数没了!是不是操作错了? 我 stash 前改的是这个函数: function calculateDiscount(price, rate) { return price * (1 - rate / 100); } 现在执行 git stash list 能看到记录,但 pop 之后文件还是旧的,这到底咋回事? 代码管理协作开发 我来解答 赞 6 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 东方慧慧 Lv1 兄弟别慌,stash没丢。你的代码肯定还在stash里藏着呢。 先执行这个命令看看stash里到底存了什么: git stash show -p stash@{0} 如果上面这个命令看不到你的函数,说明stash的时候可能没把改动add进去。git stash默认只stash已跟踪文件的修改和暂存区的内容,你得先git add再stash。 不过看你的情况,更可能是pop的时候出问题了。你检查一下执行pop之后有没有冲突提示?有时候有冲突的话,git不会自动帮你合并。 不管怎样,先用这个命令确认stash内容: git stash list 如果stash@{0}还在,那就用apply重新应用一次: git stash apply stash@{0} apply和pop的区别在于apply不会从stash列表里删掉,这样你操作起来更安全。 如果 stash show 确实能看到你的函数但apply之后文件还是旧的,那可能是你当前分支本来就有这个函数,只是你之前改动的部分被覆盖了。这种情况下你得手动把函数从stash里复制出来。 stash记录一直会在,直到你用git stash drop stash@{0}删掉它,所以不用担心代码丢失。 回复 点赞 2026-03-18 13:06 加载更多 相关推荐
先执行这个命令看看stash里到底存了什么:
如果上面这个命令看不到你的函数,说明stash的时候可能没把改动add进去。git stash默认只stash已跟踪文件的修改和暂存区的内容,你得先git add再stash。
不过看你的情况,更可能是pop的时候出问题了。你检查一下执行pop之后有没有冲突提示?有时候有冲突的话,git不会自动帮你合并。
不管怎样,先用这个命令确认stash内容:
如果stash@{0}还在,那就用apply重新应用一次:
apply和pop的区别在于apply不会从stash列表里删掉,这样你操作起来更安全。
如果 stash show 确实能看到你的函数但apply之后文件还是旧的,那可能是你当前分支本来就有这个函数,只是你之前改动的部分被覆盖了。这种情况下你得手动把函数从stash里复制出来。
stash记录一直会在,直到你用git stash drop stash@{0}删掉它,所以不用担心代码丢失。