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

Git中已暂存未提交的旧修改在新提交后是否会丢失?

Git问题解答

暂存区旧版本是否丢失

你第二次对Bob.txt执行git add暂存操作时,暂存区中该文件的旧快照(带两个感叹号的版本)会被新的快照直接覆盖,因此git status不会再显示旧版本的相关提示,但该版本没有被彻底删除,只要你没有手动执行Git垃圾清理操作,短期内都可以找回。

找回旧暂存版本的操作步骤

  • 第一步:执行悬空对象扫描命令
    运行git fsck --lost-found,Git会扫描所有未被引用的悬空对象,将找到的文件快照(blob对象)存放到仓库的.git/lost-found/other目录下。
  • 第二步:定位目标版本
    进入.git/lost-found/other目录,逐个查看目录下的哈希命名文件,找到内容为*Hi!! I'm Bob. I'm new here.*的文件即可。
  • 第三步:恢复目标版本
    执行git show [对应文件的哈希值] > Bob.txt,即可将旧版本内容覆盖到当前的Bob.txt文件中,之后正常执行暂存、提交操作即可提交带两个感叹号的版本。

注意事项

如果距离你第一次暂存操作的时间超过2周,或者你手动执行过git gc命令清理Git冗余对象,那么旧的暂存版本可能已经被彻底清理,无法找回。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:57:04