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

Git操作求助:撤销远程合并并保留本地更新的正确方法

解决步骤

1. 撤销本地拉取产生的合并,恢复到本地修改的提交

从你的Git日志来看,标注「Local changes to dev」的本地修改提交是 3d28f9a(也就是合并提交26d51b0的第一个父节点)。执行以下命令强制回退到该提交,完全恢复本地修改后的状态:

git reset --hard 3d28f9a

这个操作会丢弃掉之后的拉取合并提交,让本地dev分支回到你未拉取远程变更前的状态。

2. 推送本地修改到远程dev分支

由于远程已经撤销了之前的legacy合并,当前远程dev的状态是合并操作前的节点。此时你的本地dev已领先于远程,直接推送即可:

git push origin dev

如果推送时提示远程有未同步的变更(比如残留的撤销痕迹),可以用更安全的强制推送命令(确保团队内无人在远程dev上有未提交的修改):

git push origin dev --force-with-lease

--force-with-lease会检查远程分支是否有你未知的新提交,避免误覆盖他人的修改。

3. 重新合并legacy分支到dev

现在本地和远程dev已同步你的本地修改,接下来重新执行合并操作:

  • 拉取最新的legacy分支:
git fetch origin legacy
  • 确保当前在dev分支(已在dev则跳过):
git checkout dev
  • 合并legacy到dev:
git merge origin/legacy

如果合并出现冲突,手动解决冲突后提交即可。

4. 解决PR提示同步的问题

之前PR提示dev与legacy已同步,是因为远程曾合并又撤销,导致Git提交历史存在残留记录。现在基于最新的dev修改重新合并后,提交历史已更新,再次发起PR时Git会正确识别分支差异,不会再出现错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:19:59