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

误两次回滚提交后,如何恢复原代码变更?

恢复丢失的Git代码变更(已知原Commit ID)

不用重新编写代码,凭借你记录的原commit ID,有多种方法可以恢复变更:

  • 确认目标commit的有效性
    先在终端执行git show <你的commit ID>,如果能显示出该commit的具体变更内容,说明这个commit还保存在Git的本地对象数据库中,完全可以恢复。

  • 方法1:Cherry-pick 到当前分支
    如果你只是想把原commit的变更应用到当前分支,执行:
    git cherry-pick <你的commit ID>
    这个命令会将指定commit的修改单独提取出来,合并到当前分支上,适合不需要覆盖当前分支其他内容的场景。

  • 方法2:Reset 到原commit状态
    如果你希望当前分支直接回到原commit的完整状态(覆盖当前分支所有后续的回滚操作),执行:
    git reset --hard <你的commit ID>
    注意:这个命令会清除当前工作区和暂存区的所有未提交修改,执行前确保没有需要保留的本地变更。

  • 方法3:回滚之前的两次回滚操作
    如果你之前的两次回滚是通过git revert完成的(VS Code的图形界面回滚通常会生成revert commit),可以通过revert这两个回滚commit来恢复:

    1. 先执行git log找到那两个回滚操作对应的commit ID
    2. 执行git revert <第一个回滚commit ID> <第二个回滚commit ID>
      这样会生成两个新的commit,把之前的回滚操作抵消,原变更就会恢复。
  • 额外保障:用reflog找回丢失的commit
    如果意外找不到原commit ID了,还可以通过git reflog查看本地Git的所有操作记录,哪怕commit被标记为删除,只要没被Git垃圾回收(默认至少保留30天),都能在reflog里找到对应的记录,然后通过git reset --hard <reflog里的commit哈希>恢复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 09:44:53