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

无需命令行,如何在GitHub浏览器端压缩最后X次提交

仅用GitHub网页版压缩最后X次Commit的方法

嘿,完全不用装任何本地Git工具,在GitHub网页上就能轻松搞定这个需求,我给你一步步拆解清楚:

步骤1:定位要保留的基准Commit

打开你的仓库页面,点击顶部的「Commits」,找到你要压缩的最后X次Commit里最靠前的那个(也就是倒数第X个,是你想保留的最后一个未压缩Commit)。点击这个Commit的哈希值(一串字母数字)进入详情页,再点击页面右上角的「Create branch」,给这个分支起个清晰的名字比如base-for-squash,点击「Create branch」——这样我们就得到了一个基于基准Commit的干净分支。

步骤2:发起合并PR并准备压缩

回到仓库主页面,点击顶部的「Pull requests」→「New pull request」。在「base」栏选择刚才创建的base-for-squash分支,「compare」栏选择你要修改的原分支(比如main)。这时候GitHub会自动显示两个分支的差异,也就是你要压缩的那X次Commit的内容。
填写好PR标题(比如「Squash last X commits into one」),确认没问题后点击「Create pull request」。

步骤3:执行Squash合并

在这个PR页面,点击「Merge pull request」旁边的下拉箭头,选择「Squash and merge」。这时候你可以编辑合并后的Commit信息——默认是把所有被压缩的Commit信息拼在一起,建议改成更简洁清晰的描述,确认后点击「Confirm squash and merge」。
合并完成后,base-for-squash分支就包含了压缩后的单个Commit,内容和原分支完全一致,但Commit历史已经被简化。

步骤4:将压缩后的分支覆盖回原分支

  1. 切换到base-for-squash分支页面,点击顶部「Code」右侧的三个点「...」,选择「Push to」。
  2. 在弹出的窗口里,「Branch name」选择你要修改的原分支(比如main),然后勾选「Force push」选项。
  3. 确认后点击「Push」,原分支的历史就会被替换成压缩后的单个Commit了。

注意事项&收尾

  • 如果原分支是受保护的(比如设置了不允许强制推送),你需要先在仓库的「Settings」→「Branches」里暂时取消保护规则,操作完成后再恢复。
  • 这个操作会改写Commit历史,如果有其他开发者正在基于原分支开发,一定要提前通知他们,让他们重新拉取代码。
  • 最后可以删除刚才创建的临时分支base-for-squash,避免仓库分支混乱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:24:12