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

如何将GitHub的main分支回退重置为develop分支的状态?

将main分支重置为与develop完全一致的操作方法

你当前的GitKraken界面状态如下:
GitKraken操作界面截图

前置说明

  • 以下操作会彻底丢弃main分支上所有与develop分支不一致的提交、未提交的工作区改动,如果main分支上有需要留存的内容,请提前备份
  • 之前执行reset/rebase未生效的常见原因:重置后没有强制推送覆盖远端main分支,导致本地修改后拉取又回到旧状态;重置时选择了mixed/soft模式,没有彻底覆盖提交历史和工作区;未提前拉取最新远端状态,对齐的是本地旧版本的develop分支

方法1:命令行操作(全场景通用100%生效)

依次执行以下命令即可:

  1. 切换到本地main分支
    git checkout main
  2. 拉取所有远端分支的最新状态,清除本地旧缓存
    git fetch --all -p
  3. 将本地main分支硬重置到develop分支最新提交:如果需要对齐本地develop分支,将命令里的origin/develop替换为develop即可
    git reset --hard origin/develop
  4. 强制推送重置后的本地main分支到远端,覆盖远端旧的main分支历史
    git push origin main --force
    如果仓库开启了main分支保护禁止强推,需要先在仓库设置页面临时解除main分支的强制推送限制,操作完成后再重新开启保护规则即可

方法2:GitKraken可视化界面操作

不想敲命令可以直接在GitKraken内按步骤操作:

  • 点击左侧分支栏的main分支,切换到main分支
  • 在左侧分支栏找到目标develop分支:要对齐本地develop就选本地列表里的develop,要对齐远端最新develop就展开origin分组选远端的develop
  • 右键点击选中的develop分支,在弹出菜单里选择Reset main to this commit,二级菜单选择Hard - discard all changes,确认执行
  • 等待本地重置完成后,点击顶部工具栏的Push按钮,在弹出的推送确认框里勾选Force Push选项,确认推送即可

操作完成后拉取一次main分支验证,此时本地和远端的main分支会和develop分支的提交历史、文件内容完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:18:19