首页 游戏 软件 资讯 排行榜 专题
首页
编程语言
GitStash丢失后的完整找回指南

GitStash丢失后的完整找回指南

热心网友
62
转载
2026-04-29

场景:本地分支有未提交的 git stash,合并远程分支后 stash 从列表消失,代码“不见了”。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

GitStash丢失后的完整找回指南

事故还原

  1. 在本地分支 test-eslint-copy 上做了大量修改(props 清理、字段删除等)
  2. git stash 暂存了这些改动
  3. 执行 git merge origin/test 合并远程分支
  4. 合并后发现 git stash list 里没有了自己的 stash,改动“消失”

根本原因git stash 的记录存储在 refs/stash 引用链上。某些 git 操作(如带冲突的 merge、reset 等)会导致 stash 引用丢失,但 stash 的 commit 对象本身还在 git 对象库里,只是变成了“悬空对象(dangling commit)”,没有任何引用指向它。

找回步骤

第一步:确认 stash list 里真的没了

git stash list

如果你的 stash 不在里面,继续下一步。

第二步:用 fsck 找出所有悬空的 commit

git fsck --unreachable 2>&1 | grep "unreachable commit"

这会列出所有“孤儿 commit”,stash 就藏在里面。

第三步:过滤出属于你分支的 stash

stash commit 的 message 格式固定为 WIP on <分支名>: ,用这个特征过滤:

git fsck --unreachable 2>&1 | grep "unreachable commit" | awk '{print $3}' | while read c; do
  msg=$(git log -1 --format="%s %ci" $c 2>/dev/null)
  if echo "$msg" | grep -q "WIP on <你的分支名>"; then
    echo "$c | $msg"
  fi
done

<你的分支名> 替换成实际分支名,比如 test-eslint-copy

输出示例:

469b4f36... | WIP on test-eslint-copy: 23996d8 fix: 再次处理eslint问题 2026-04-28 10:03:30 +0800
bcb74bf5... | WIP on test-eslint-copy: 14aa429 Merge branch 'test' 2026-04-28 09:54:12 +0800

第四步:确认是不是你要的那个

根据时间戳判断,然后看改动内容:

git show  --stat

第五步:恢复

先处理工作区的干扰文件(如果有),再 apply:

# 如果有自动生成的文件挡路,先丢弃
git checkout -- src/dts/auto-imports.d.ts src/dts/components.d.ts

# 恢复 stash
git stash apply 

关键原理

概念 说明
git stash 本质是创建了 2~3 个特殊 commit,用 refs/stash 引用链串起来
stash 丢失 只是引用链断了,commit 对象本身还在对象库
dangling commit 没有任何引用指向的 commit,git fsck 可以找到
git gc 垃圾回收,会清理 dangling 对象。找回操作要在 gc 之前做!

预防措施

合并前养成习惯:

# 合并前先把 stash 转成真正的 commit
git stash pop
git add .
git commit -m "wip: 临时保存"

# 合并完再 reset 回来
git merge origin/xxx
git reset HEAD~1  # 把临时 commit 变回工作区改动

或者更简单,用 --autostash

git merge --autostash origin/xxx

这样 git 会在合并前自动 stash、合并后自动 pop,不会丢。

总结一句话

stash 丢了不要慌,git fsck --unreachable 找悬空 commit,按时间戳认出来,git stash apply 直接恢复。只要没跑 git gc,数据就还在。

来源:https://www.jb51.net/program/363033ucc.htm
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

描写元旦的好句子
职业与学业
描写元旦的好句子

小编导语:新年里你一定有很多的话想要说吧!新年是一个新的开始,是一个新的期望,用很多优美的句子来描写元旦吧。更多关于新年元旦的好词好句尽在本站作文网! 新的一年如约而至。每到这个时候,总感觉一切都被按下了重启键,万物都酝酿着新的变化。长大一岁,不仅是年龄的增长,更意味着肩上多了一份沉甸甸的期许。谁都

热心网友
04.29
关于元旦的好词
职业与学业
关于元旦的好词

小编导语 新的一年翩然而至,你准备好用什么美好的词汇来装点这个崭新的开端了吗?关于元旦的精彩语汇,我们已为大家悉心整理,希望能为同学们的写作增添一抹亮色。更多关于新年元旦的绝妙好词好句,尽在本站作文网,欢迎随时取用。 说到新年,脑海里自然会浮现出一连串鲜活的画面与词汇:那是无处不在的喜庆,是家人围坐

热心网友
04.29
恩师回忆奥运冠军董栋坎坷蹦床路
职业与学业
恩师回忆奥运冠军董栋坎坷蹦床路

恩师回忆奥运冠军董栋坎坷蹦床路 伦敦奥运男子蹦床决赛的结果,想必大家还记忆犹新:中国选手董栋一举夺金,陆春龙收获铜牌,银牌则被俄罗斯选手乌萨科夫摘得。自董栋为山西省拿下这枚具有历史意义的奥运单项金牌后,他的故事便成了街头巷尾热议的话题。近日,董栋的恩师杨志强教练谈起十年前那个决定性的时刻,一切细节依

热心网友
04.29
奥运冠军王旭谈恩师:我和教练的父女情
职业与学业
奥运冠军王旭谈恩师:我和教练的父女情

奥运冠军王旭谈恩师:我和教练的父女情 2004年雅典奥运会女子摔跤72公斤级的领奖台上,王旭的名字被历史铭记。然而,金牌的光芒背后,有一段鲜为人知却更为动人的故事。夺冠那一刻,王旭与教练许奎元紧紧相拥,这位北京姑娘赛后的一句话道出了所有:“这块金牌,实现了我们两个人的梦想。” 在当时的国家摔跤队里,

热心网友
04.29
王羲之书圣卖“当”
职业与学业
王羲之书圣卖“当”

王羲之书圣卖“当” 提起王羲之,这位东晋书坛的巅峰人物,历代学书者无不奉其为圭臬,尊一声“书圣”。他不仅字写得好,生平逸事也颇为有趣。话说有一年春天,王羲之兴致勃勃地去杭州访友,途经苏州时,被江南的夜色深深吸引,流连忘返。晚风拂面,醉意与美景交融,谁料欣赏了一夜风景后,他竟一病不起。 书童赶忙请来苏

热心网友
04.29