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

如何在已完成Squash合并的Git分支上再次Squash新提交?

把新提交 squash 到已推送的历史提交上的操作方法

先看提交历史示意图:
提交历史示意图

具体操作步骤如下:

  • 第一步,查看提交历史,定位到ALL Tests提交的哈希值。执行命令:
    git log --oneline
    在输出里找到ALL Tests对应的提交ID(比如开头的一串字母数字,像a1b2c3)。

  • 第二步,启动交互式变基,目标是ALL Tests提交的父提交:
    git rebase -i <ALL Tests的提交ID>^
    注意末尾的^不能少,它表示要变基到目标提交的上一个节点。

  • 第三步,在弹出的编辑器里修改提交指令:
    编辑器里会列出ALL Tests之后的2个新提交,把这两行开头的pick改成squash(或简写s),ALL Tests那行保持pick不变。保存并关闭编辑器。

  • 第四步,修改合并后的提交信息:
    Git会再次弹出编辑器,让你编辑合并后的提交说明,你可以保留原来的ALL Tests,或者补充新增内容的描述,完成后保存关闭。

  • 第五步,强制推送修改后的历史到远程:
    git push --force-with-lease
    用--force-with-lease比直接--force更安全,能防止意外覆盖他人的提交。

⚠️ 注意事项:

  • 如果这个分支有其他协作开发者,强制推送会打乱他们的本地仓库,一定要提前沟通好再操作。
  • 操作前确保本地没有未提交的修改,可先用git stash暂存,操作完成后用git stash pop恢复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 12:01:12