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

降级Django后GitHub无法解决冲突合并,推送分支遇无限循环如何解决

问题原因

你陷入操作循环的核心原因是:你按照官方流程完成本地合并的过程中,远程main分支产生了新的提交,导致你本地的main版本落后于远程版本,直接推送被拒。执行git pull时默认会将远程新提交和你本地刚合并完的内容做二次合并,已经解决过的冲突就会复现。

解决步骤
  1. 先锁定最终要的功能分支代码
  • 切回你的功能开发分支(将下方的foobranch替换为你自己的分支名):
    git checkout foobranch
  • 确认当前分支的代码就是你开发完成、所有功能正常的最终版本,所有改动都已提交,没有未保存的变更。
  1. 基于最新远程main分支处理一次冲突
  • 拉取远程所有最新的提交记录:
    git fetch origin
  • 将你的功能分支变基到最新的远程main分支上,全程只需要处理一次冲突:
    git rebase origin/main
  • 执行上述命令后如果出现冲突提示,逐个打开冲突文件,手动保留你需要的代码(你的功能分支逻辑),每处理完一个冲突文件执行git add 对应文件名,所有冲突处理完成后执行git rebase --continue即可完成变基。如果中途想放弃本次操作,执行git rebase --abort就能回到操作前的状态。
  • 变基完成后测试一遍所有功能,确认运行正常。
  1. 合并到main并推送
  • 切换到本地main分支:
    git checkout main
  • 将本地main强制同步为和远程main完全一致的状态,清除本地旧的合并记录:
    git reset --hard origin/main
  • 合并处理完冲突的功能分支到本地main:
    git merge --no-ff foobranch
  • 此时不存在版本落后或冲突问题,直接推送即可:
    git push origin main
GitHub Desktop操作补充

如果你偏好图形化操作,完成上述变基步骤后,打开GitHub Desktop先切到main分支,点击「拉取 origin」保证本地main和远程完全同步,再选择「合并 foobranch 到 main」,合并完成后直接点击推送即可,不会再触发冲突。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:12:01