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

误对落后5个commit的分支rebase并强制推送,如何找回同事的Git提交?

找回被rebase覆盖的Commit解决方案

优先用本地Git reflog恢复

Git会自动记录所有分支和HEAD的操作历史,哪怕是rebase这种改写提交历史的操作,都能在reflog里找到痕迹:

  • 执行git reflog查看操作日志,找到rebase执行前的分支状态对应的commit哈希。日志里会有类似HEAD@{n}: rebase finished: returning to refs/heads/你的分支名的记录,往前数的那条就是rebase前的最后一个commit(也就是同事那5个commit的末尾)。
  • 直接恢复当前分支到该commit:git reset --hard 找到的哈希值,或者先创建一个新分支保存这些commit:git branch 恢复分支名 找到的哈希值,避免影响当前分支。
  • 确认找回后,执行git push -f origin 你的分支名,把远程分支恢复到正确状态。

若本地reflog无记录,检查远程托管平台的分支历史

像GitHub、GitLab这类平台通常会保留分支的历史版本,即使被强制推送覆盖。你可以在分支的页面里找到"提交历史"或"恢复版本"的选项,定位到被覆盖的那5个commit,直接在平台上恢复分支,或者把对应的commit哈希拉到本地处理。

关键提醒

  • 操作前先备份当前分支:git branch 备份分支名,防止误操作导致更多丢失。
  • 强制推送前务必确认其他同事还没基于错误的分支版本做新提交,不然会覆盖他们的工作,最好先和团队沟通。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:42:41