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

如何在VSCode中恢复切换分支后丢失的未推送Git提交?

恢复未推送的Git提交

你的未推送提交并没有真的丢失,只是切换分支后不在当前分支的提交链上,可通过以下步骤恢复:

  • 第一步:找到丢失的提交哈希
    执行git reflog命令,这条命令会记录所有HEAD的变更历史(包括未推送的提交、分支切换等操作)。在输出里定位你之前创建的提交,每条记录会显示提交哈希、操作说明(比如commit: 修复XX问题),记下对应的哈希值(一般取前7位即可)。

  • 第二步:恢复提交的几种方式

    1. 创建新分支保存提交
      执行git checkout -b <新分支名称> <提交哈希>,比如git checkout -b recover-commits abc1234,基于目标提交创建新分支后,所有未推送的提交都会保留在这个分支上,后续可合并回原工作分支。

    2. 将提交cherry-pick回原分支
      先切换到原工作分支:git checkout <原分支名>,再依次执行git cherry-pick <提交哈希1> <提交哈希2>,把每个丢失的提交逐个应用到当前分支。

    3. 重置原分支到最后一个丢失的提交
      若确认原分支当前无需要保留的内容,可执行git reset --hard <最后一个丢失的提交哈希>,直接将原分支HEAD指向该提交,恢复所有之前的提交记录。注意:--hard会清除当前分支的未提交修改,执行前务必确认无未保存的工作内容。

  • 补充提示

    • Git的reflog记录默认保留90天,建议尽快操作避免记录过期。
    • 在VSCode中,可通过左侧Git面板的「更多操作」→「显示reflog」查看操作历史,找到对应提交后右键选择「创建分支」或「樱桃挑选」完成恢复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 00:04:52