You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多次执行git stash及apply后如何找回首次stash前的本地代码

找回第一次stash前代码版本的操作方法

Git的stash采用栈结构存储所有暂存记录,只要你没手动执行过stash清空、删除操作,所有历史stash条目都完整留存,完全可以恢复目标版本,操作步骤如下:

  • 首先执行命令查看所有stash暂存条目,确认对应记录:
    git stash list
    命令输出示例如下:
stash@{0}: WIP on dev: 8f3d217 fix: 登录接口参数校验
stash@{1}: WIP on dev: 8f3d217 fix: 登录接口参数校验

stash序号遵循栈规则:最新生成的暂存条目序号最小,你第二次执行stash生成的记录对应stash@{0},第一次执行stash生成的记录对应stash@{1},条目后附带的分支、提交信息可以帮你确认对应关系。

  • 根据你当前工作区的需求,选对应方案恢复即可:
    1. 不需要保留当前工作区内容,直接回到第一次stash前的状态
      先执行git reset --hard HEAD清空当前工作区的修改(注意:该操作会永久丢弃当前未提交的改动,确认不需要后再执行),再执行git stash apply stash@{1}应用第一次的暂存记录,执行完成后工作区状态就和你第一次执行git stash前完全一致。
    2. 需要保留当前工作区内容,单独导出第一次stash的状态
      执行git stash branch recover-stash-v1 stash@{1},该命令会自动创建名为recover-stash-v1的新分支,切换到该分支后会自动完整应用第一次stash的所有内容,不会影响你当前分支的工作区状态,你可以在新分支确认内容后,再按需合并、拷贝到目标分支。

注意事项

  • 执行git stash apply不会删除对应的stash条目,只要你没手动执行git stash drop、git stash clear操作,暂存记录会一直保留,操作出错可以随时重试。
  • 担心操作失误的话,可以先执行git stash把当前工作区的内容临时暂存做备份,再执行恢复操作,出问题随时可以回退到备份状态。

内容的提问来源于stack exchange,提问作者SSK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 05:42:15