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

执行Git stash后修改内容丢失,如何找回?

Git修改丢失恢复步骤

1. 临时保存当前工作区状态

当前工作区存在未提交的暂存文件、修改文件和未追踪文件,先将这些内容临时存入stash,避免后续操作冲突:

git stash push -m "temp_save_current_state"

2. 确认目标stash条目

执行命令查看所有stash记录,找到标注为On main: latest modification的条目(若刚执行完上一步,该条目编号通常为stash@{1}):

git stash list

3. 用临时分支安全恢复目标stash

创建临时分支隔离恢复操作,避免直接影响main分支:

git checkout -b recover_stash main
git stash apply stash@{X}  # 将X替换为目标stash的实际编号,如stash@{1}

若出现文件冲突(如.gitignore),手动打开冲突文件解决差异后,执行:

git add .
git commit -m "recover stashed modifications"

4. 恢复临时保存的工作区内容

切回main分支,恢复第一步临时存入的内容:

git checkout main
git stash apply stash@{0}

处理可能出现的冲突后,可删除临时分支:

git branch -D recover_stash

5. 验证恢复结果

通过以下命令确认所有修改已恢复:

git status
git diff

关键说明

  • 此前执行git stash save时出现的Unlink of file 'music.db' failed错误,仅为本地文件被进程占用导致的工作区清理失败,stash已成功保存所有修改,可通过以下输出验证:

PS C:\Users\Administrator\Desktop\projects\songs> git stash show --stat
.gitignore | 4 ++--
app.py | 11 +++++++----
music.db | Bin 69632 -> 86016 bytes
static/css/musicPlayer.css | 1 +
static/css/styles.css | 4 +++-
templates/favorites.html | 2 ++
templates/layout.html | 8 ++++++--
templates/play.html | 27 +++++++++++++++++++--------
8 files changed, 40 insertions(+), 17 deletions(-)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 19:46:16