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

执行git pull --rebase后本地提交丢失,如何找回对应提交内容?

找回丢失提交的操作步骤

  • 第一步:定位rebase前的提交哈希
    你本地所有HEAD的历史变动都记录在git reflog中,找到你执行git pull --rebase操作之前,本地分支最后一次提交对应的哈希值(可通过reflog中记录的操作时间、提交信息匹配确认),下文以<old_commit_hash>指代该哈希。
  • 第二步:根据需求选择恢复方案
    1. 如果你不需要当前已经同步的远程最新内容,直接回到rebase前的完整状态:
      先暂存当前工作区未提交的修改(如果有):git stash
      执行重置命令:git reset --hard <old_commit_hash>
      操作完成后所有本地提交都会恢复,工作区内容也会回到rebase前的状态。
    2. 如果你需要保留当前已经同步的远程最新内容,只恢复丢失的本地提交:
      从reflog中依次找出所有丢失的本地提交对应的哈希值,执行cherry-pick操作即可:
      git cherry-pick <丢失提交哈希1> <丢失提交哈希2> ...
      若遇到冲突,手动解决冲突后执行git add .,再执行git cherry-pick --continue即可完成提交迁移。
  • 第三步:验证恢复结果
    执行git log查看提交历史,确认丢失的提交已正常展示,核对工作区文件内容和修改记录无误即可。

后续规避建议

后续执行git pull --rebase等会修改提交历史的操作前,可以先给当前分支打临时备份标签:git tag backup_before_rebase,即使操作出现问题也可以直接基于标签快速恢复,不会出现提交丢失的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:15:05