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

如何通过Git/GitHub将main分支提交按合并类型归类为四类?

区分Git/GitHub不同方式产生的提交

可以通过Git的提交结构和GitHub的记录来区分这四类提交,具体方法如下:

1. 标准合并(standard merge)提交

  • 属于合并提交,用git log --merges能直接筛选出来,这类提交有两个父提交
  • 执行git show <提交哈希>查看详情,会显示Merge:开头的行,标注两个父提交的哈希
  • 在GitHub上,这类提交页面会明确显示「Merge branch 'xxx' into main」的标题,还能看到关联的分支信息

2. 压缩合并(squash and merge)提交

  • 是普通的单父提交,但GitHub默认会给这类提交的信息加上前缀(比如「Squash merge of #<PR编号>: 原分支提交标题」),如果没手动修改提交信息,一眼就能识别
  • 可通过GitHub的PR记录追溯:找到对应PR,查看合并方式为「Squash and merge」,该PR对应的唯一提交就是压缩后的结果
  • Git本地没有内置标记,只能结合GitHub的PR历史区分

3. 变基合并(rebase and merge)提交

  • 这类提交的哈希值和原功能分支上的提交不一样(变基会重新生成提交)
  • 在GitHub上,对应PR的合并方式会显示为「Rebase and merge」,通过PR页面能关联到这些提交
  • 本地Git没法直接区分,但如果保留了原功能分支,对比哈希值就能发现差异;或者看时间线,变基后的提交会保留原时间,但位置在main分支的较新位置

4. 直接提交至main分支的提交

  • 没有关联任何PR记录(正常操作下不会在main提交后开PR)
  • 提交的父提交就是main分支的前一个提交,没有合并相关的标记
  • 在GitHub上,这类提交的作者是直接在main分支操作的用户,找不到对应的PR合并记录

注意

Git本身不会给不同方式的提交加特殊标记,主要靠提交结构(比如合并提交的双父)和GitHub的PR记录来区分。如果手动改了提交信息或者删了PR记录,部分提交的分类就会变困难。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:35:18