Git技术问询:如何验证release_1.0分支所有提交是否已合并至master?
排查release分支未合并到master的遗漏提交方法
1. 快速列出release分支独有的提交
用Git范围日志命令直接筛选出release_1.0上存在但master没有的提交:
- 简洁版(仅显示提交哈希和标题):
git log --oneline master..release_1.0 - 图形化版(直观展示分支关系):
git log --graph --oneline --decorate master..release_1.0
该命令会精准列出所有仅存在于release_1.0的提交,快速定位遗漏项。
2. 用git cherry标记已合并/未合并提交
这个命令专门对比两个分支的提交状态,直接标注未合并项:
git cherry -v master release_1.0
输出结果说明:
- 前缀
+:该提交已合并到master - 前缀
-:该提交仅存在于release_1.0,未合并到master
3. 生成分支差异文件清单
若需聚焦文件变更而非提交记录,可使用差异命令:
- 仅显示有差异的文件名:
git diff --name-only master...release_1.0 - 显示完整文件变更内容:
git diff master...release_1.0
注意使用三个点(...)会排除master在release_1.0创建后新增的提交,仅对比release_1.0相对于分支创建时的master的所有变更。
4. 合并冲突时的分步排查技巧
直接合并冲突过多时,通过临时分支分步处理:
- 创建基于当前
master的临时分支:git checkout -b temp_merge master - 合并
release_1.0到临时分支:git merge release_1.0 - 仅查看冲突文件:
git diff --name-only --diff-filter=U - 用可视化合并工具逐个解决冲突,同时结合
git cherry的结果,标记未合并提交对应的变更。
特殊情况:提交被Rebase过的处理
若release_1.0有Rebase操作导致提交哈希变化,用以下命令对比:
git log --no-merges --left-right master...release_1.0
输出说明:
- 前缀
<:该提交仅存在于master - 前缀
>:该提交仅存在于release_1.0
内容的提问来源于stack exchange,提问作者asim
相关产品推荐
相关产品推荐

