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

Git提交丢失但PowerShell历史可见,如何恢复?

找回丢失Git提交的额外途径
  • 通过提交消息全局搜索
    既然你知道丢失提交的完整消息,可以用Git的全局搜索命令遍历所有分支、标签甚至隐藏的提交记录:

    git log --all --grep="Commit 1 text" --oneline
    

    替换Commit 1 text为每个丢失提交的消息,一旦找到对应的提交哈希,就能通过git checkout <哈希>或git cherry-pick <哈希>恢复内容。

  • 重新生成提交内容
    你使用的是git commit -a命令,说明提交的是所有已跟踪文件的改动。先找到周五午餐前的最后一个有效提交(比如通过git log找到对应的哈希),然后:

    1. 基于该提交创建临时分支:git checkout -b recover-lost-commits <午餐前提交哈希>
    2. 检查当前本地文件是否保留了当时的改动,若保留,按原提交顺序依次执行:
      git commit -a -m "Commit 1 text"
      git commit -a -m "Commit 2 text"
      git commit -a -m "Commit 3 text"
      
    3. 若本地文件已被覆盖,可通过git diff <午餐前提交哈希> <当前分支>对比差异,手动恢复改动后再按上述命令提交。
  • 遍历所有Git提交对象
    尝试直接遍历仓库中所有存在的提交对象,排查是否有未被索引的目标提交:

    git cat-file --batch-check --batch-all-objects | grep commit | cut -d' ' -f1 | xargs git log --oneline
    

    这个命令会列出所有提交的哈希和消息,你可以从中查找匹配的提交内容。

  • 检查其他克隆/备份版本
    如果该仓库有其他克隆副本(比如同事的本地仓库、你其他设备上的克隆),尝试从这些副本中拉取提交:

    git remote add temp <其他克隆仓库路径>
    git fetch temp
    git log temp/分支名
    

    找到目标提交后,将其cherry-pick到当前分支即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 12:52:34