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

`git merge --squash` 究竟是否属于Git合并操作?

Git两种合并方式的差异详解

刚好对这两种Git合并方式熟得很,给你详细拆解下(虽然没法直接放流程图,但文字说明足够清晰):

1. 使用git merge --no-ff target合并

当你在master分支执行这个命令时,Git会生成一个带有两个前驱节点的新合并提交——其中一个前驱是master分支原本的最后一个提交,另一个是target分支的最终提交。
用git log查看提交历史时,你能完整看到两个分支各自的提交记录,分支的分叉、合并痕迹都清晰保留,不会丢失任何分支上的提交细节。

2. 使用git merge --squash + git commit合并

这种方式走的是“压缩合并”的路子:

  • 首先git merge --squash target会把target分支上所有提交的修改内容,打包成一个统一的修改集应用到当前的master分支,但不会自动生成提交。
  • 你需要手动执行git commit来完成最终提交,这个新生成的提交节点只有一个前驱——就是master分支原本的最后一个提交。
    用git log查看时,只能看到master分支的历史记录,target分支原来的所有独立提交都被压缩成了这一个新提交,无法看到分支原有的提交细节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:14:14