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

如何将Git自定义分支的所有提交合并为单个提交?

如何将自定义分支的提交合并为单个提交并仅保留自身更改?

完全可行,以下是两种可靠的操作方法,适配你是否从main拉取过内容的场景:

方法一:交互式变基(可自定义合并后的提交信息)

  1. 找到分支的起点提交:执行以下命令获取你从main分支创建some-branch时的初始提交哈希(即使之后从main拉取过内容,这个命令也能准确找到分叉点):
git merge-base --fork-point main some-branch

将输出的哈希值(比如abc123)记下来。

  1. 执行交互式变基:
git rebase -i abc123

此时会打开文本编辑器,显示some-branch上的所有提交。将第一行的pick保留,把其余所有行的pick替换为s(squash,会保留原提交信息供编辑)或f(fixup,直接丢弃原提交信息)。保存并退出编辑器后,Git会自动将所有提交合并为一个,你还可以编辑最终的提交信息。

方法二:合并压缩(操作更简洁)

如果不需要编辑单个提交信息,用这种方法更高效:

  1. 找到分支起点并创建新分支:同样先用git merge-base --fork-point main some-branch获取起点哈希abc123,然后基于该起点创建新分支:
git checkout -b some-branch-squashed abc123
  1. 压缩合并所有更改:
git merge --squash some-branch

这个命令会把some-branch上的所有更改一次性应用到新分支的工作区,不会生成合并提交。

  1. 提交合并后的更改:
git commit -m "合并some-branch的所有自定义更改"

注意事项

  • 操作前建议备份原分支:git branch some-branch-backup,防止操作失误丢失提交记录。
  • 如果操作中遇到冲突,按Git提示解决冲突后继续执行即可。

内容的提问来源于stack exchange,提问作者Pure.Krome

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:42:16