如何在Git中找出所有HEAD指向指定提交c1的分支?
列出指向特定提交的所有分支
要找出所有分支头正好等于提交c1的分支,和查找“包含该提交的分支”逻辑不同,直接使用Git的for-each-ref命令即可精准筛选:
核心命令(仅本地分支)
git for-each-ref --format='%(refname:short)' refs/heads/ --points-at=c1
命令解释
git for-each-ref:遍历指定范围内的Git引用(这里限定为本地分支refs/heads/)--format='%(refname:short)':输出分支的短名称(例如main而非完整路径refs/heads/main)--points-at=c1:仅保留指向提交哈希c1的分支
包含远程分支的情况
如果需要同时查找远程分支,只需扩展引用范围,同时包含本地和远程分支:
git for-each-ref --format='%(refname:short)' refs/heads/ refs/remotes/ --points-at=c1
备选方案(用git branch + 文本处理)
如果习惯用git branch,也可以结合文本筛选实现,但可靠性略低于for-each-ref:
git branch --format='%(refname:short) %(objectname)' | grep "^.* $c1$" | awk '{print $1}'
内容的提问来源于stack exchange,提问作者Elie
相关产品推荐
相关产品推荐

