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

Git合并致代码全崩,但当前分支代码正常,如何强制替换目标分支?

强制用当前分支覆盖目标分支的解决方案

既然当前分支代码完全正常,而任何合并/rebase操作都会导致代码混乱,直接用当前分支内容替换目标分支是最快的解决方式,具体操作如下:

  1. 确认当前分支(假设为feature-branch)代码已提交且状态干净:

    git status
    

    如果有未提交改动,先提交:

    git add .
    git commit -m "最终稳定版本提交"
    
  2. 切换到需要被覆盖的目标分支(比如main,替换成你的实际分支名):

    git checkout main
    
  3. 强制将目标分支重置为当前分支的最新提交:

    git reset --hard feature-branch
    

    执行后,目标分支的所有文件会完全和当前分支一致,原分支的差异提交会被丢弃。

  4. 推送覆盖远程目标分支(如果需要同步到远程仓库):

    git push --force-with-lease origin main
    

    使用--force-with-lease而非--force,能避免意外覆盖其他协作者未推送的改动,更安全。


额外注意事项

  • 此操作属于破坏性操作,执行前务必确认:
    • 当前分支是经过验证的正确版本
    • 目标分支没有其他未同步的协作改动
  • 若公司PR要求必须是squash后的单个提交,可先在当前分支完成squash再执行上述步骤:
    # 在当前分支执行,将最近N个提交合并为一个
    git rebase -i HEAD~N
    # 在编辑器中,把第一个提交以外的所有操作从`pick`改为`squash`,保存后编辑合并提交信息
    # 完成后再执行前面的重置和推送流程
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 22:12:27