Git合并工作流中,如何查看PR分支唯一提交及相关提交视图?
Git合并工作流下的提交查看方案
针对你在合并式工作流(用Bitbucket/GitHub/GitLab处理PR)中的需求,以下是具体的Git命令实现:
1. 图形化展示分支分叉与合并
直接使用带图形化参数的日志命令,就能生成类似示例的拓扑结构:
git log --graph --oneline main
这个命令会以ASCII图形形式展示main分支的所有提交、分叉和合并关系,清晰呈现分支历史的全貌。
2. 仅列出main的主要提交
要筛选出main分支的核心提交(包括PR合并提交和直接提交到main的记录),使用--first-parent参数追踪主分支的线性历史:
git log --first-parent --oneline main
--first-parent会让Git只追踪每个提交的第一个父提交,跳过合并进来的PR分支提交,只保留main自身的提交链,输出结果与你期望的一致:
commit4 (merge commit to `main`, via a PR) commit3 commit2 commit1 (initial commit)
3. 查看指定合并提交对应的PR提交
对于任意合并提交(比如示例中的commit4),利用Git合并提交的双父特性(第二个父提交对应PR分支的最后一个提交),用以下命令列出PR内的所有提交:
只列出PR分支的提交(不含合并提交)
git log --oneline <合并提交SHA>^2..<合并提交SHA>
说明:<合并提交SHA>^2指向该合并的第二个父提交(PR分支的末端),这个范围会列出从PR分支起点到末端的所有提交,即示例中的featureCommit2、featureCommit1。
包含合并提交的版本
如果需要把合并提交也包含进去,用排除第一个父的方式:
git log --oneline <合并提交SHA> ^<合并提交SHA>^1
这样会输出合并提交加上PR分支的所有提交,即示例中的commit4、featureCommit2、featureCommit1。
内容的提问来源于stack exchange,提问作者Gabriel Staples
相关产品推荐
相关产品推荐

