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

Git中如何调整提交顺序以实现指定提交的squash合并?

如何通过调整提交顺序合并不连续的Git提交?

当然可以通过调整提交顺序来实现不连续提交的合并需求,具体操作步骤如下:

  1. 执行交互式变基命令,选中需要操作的提交范围:
    git rebase -i HEAD~5
    
  2. 在弹出的交互编辑界面中,调整提交顺序:把你想要合并的提交(示例里的hash4、hash5)移动到目标提交(hash2)的紧后面,调整后的内容如下:
    pick hash1 commit message 1
    pick hash2 commit message 2
    pick hash4 commit message 4
    pick hash5 commit message 5
    pick hash3 commit message 3
    
  3. 修改提交指令:将hash4和hash5前面的pick改成squash(或缩写s),这样它们就会合并到前一个提交(hash2)中:
    pick hash1 commit message 1
    pick hash2 commit message 2
    squash hash4 commit message 4
    squash hash5 commit message 5
    pick hash3 commit message 3
    
  4. 保存并退出编辑器,Git会自动执行变基操作。如果过程中出现冲突,手动解决冲突后执行git rebase --continue即可完成。

额外注意事项

  • 提交顺序调整后可能触发代码冲突,需要手动解决冲突后继续变基流程
  • 如果这些提交已经推送到远程仓库,不建议轻易执行变基操作;若必须变基,完成后需要用git push --force-with-lease强制推送,且提前告知协作者避免代码混乱
  • 对于N个不连续提交的场景,逻辑完全一致:把所有需要合并的提交移动到同一个目标提交的后续位置,再将它们的指令改为squash即可(如果不需要保留这些提交的信息,也可以用fixup指令)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:45:55