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

如何将GitHub主分支恢复到3次合并前的提交并保留后续更改

实现方案:回退main分支并保留最近3次合并的更改

方法一:GitHub网页UI操作(优先推荐)

1. 先把3次合并的更改存到新分支

  • 打开仓库主页,点击顶部的「Branch: main」下拉框,输入一个新分支名(比如saved-recent-merges),点击「Create branch: saved-recent-merges from main」。这个分支会完整保留当前main的所有内容,包括那3次合并的更改。

2. 找到3次合并前的目标提交

  • 点击仓库顶部的「Commits」标签,翻找main的提交历史。通过「Merge pull request」的标识数3次合并,找到这3次之前的那个提交。
  • 点击该提交的哈希值(一串字符)进入详情页,复制完整的提交哈希(点哈希旁的剪贴板图标就行)。

3. 把main回退到目标提交状态

  • 回到仓库主页,再次点击「Branch: main」下拉框,输入临时分支名(比如reset-main-temp),在「From」输入框粘贴刚才复制的目标提交哈希,点击「Create branch: reset-main-temp from <提交哈希>」。
  • 进入「Pull requests」标签,点击「New pull request」。在「base」选main,「compare」选reset-main-temp,创建这个PR。
  • 检查PR的变更内容,确认是回退到目标提交的状态,然后点击「Merge pull request」完成合并(如果main有分支保护,需要先调整规则或让有权限的用户操作)。
  • 合并后,main就回到了3次合并前的状态,而那3次合并的更改还在saved-recent-merges分支里。
  • 最后记得恢复main的分支保护规则(如果之前修改过)。

方法二:命令行操作

  • 克隆仓库到本地:git clone <你的仓库地址>
  • 切换到main分支:git checkout main
  • 创建分支保存更改:git branch saved-recent-merges
  • 查看提交历史找目标哈希:git log --oneline,找到3次合并前的提交哈希
  • 重置main到目标提交:git reset --hard <目标提交哈希>
  • 强制推送到远程:git push origin main --force(注意:main有分支保护的话,要先取消才能执行)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:42:37