如何查看哪些分支包含某个提交

查看包含某提交的分支:git branch --contains <提交哈希>,加 -a 包含远程分支,-r 只看远程。查标签用 git tag --contains。判断"这个修复进了哪些发布分支"时最常用。

最佳实践
Git 提交历史与版本恢复示意

git branch --contains <提交哈希>:列出所有包含该提交的本地分支;加 -a 把远程跟踪分支也算上,-r 只看远程。典型用途:确认一个 bugfix 提交到底进了哪些分支、哪个版本还没带这个修复。

用法

git branch --contains a1b2c3d        # 本地分支
git branch -a --contains a1b2c3d     # 本地 + 远程
git branch -r --contains a1b2c3d     # 只看远程

git tag --contains a1b2c3d           # 哪些标签包含它(查进了哪个版本)

实际场景

# 这个 hotfix 进了哪些发布线?
git branch -r --contains 9f8e7d6 | grep release

# 这个提交随哪个版本发出的?
git tag --contains 9f8e7d6 | sort -V | head -1

反向问题:这个提交有没有进 main

git merge-base --is-ancestor a1b2c3d main && echo "已进 main" || echo "未进"

--contains 是"列名单",--is-ancestor 是"是非判断",脚本里用后者。

常见问题(FAQ)

Q:cherry-pick 过去的提交为什么 --contains 查不到?

cherry-pick 产生新哈希的提交,原提交不在目标分支的祖先链上。判断内容是否已进某分支用 git cherry main feature-x。

Q:刚提交的分支为什么远程查不到?

远程引用是本地缓存。先 git fetch --all 再查 -r 版本才准。

Q:能按作者/日期过滤这些分支吗?

管道接 for-each-ref:git branch -a --contains <哈希> 拿到名单后逐个 git log -1 --format='%an %ad' 分支。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台