如何获取在GIT中创建标记的特定分支的名称

时间:2012-02-09 00:03:31

标签: git tags branch

我知道git命令“git branch --contains”可以显示可以找到标签的分支。但输出包括所有子/子分支。例如:

master ----------------------------
          |    \
        tag_X   \
                 \
                  ------------------ branch_A
                    |      \
                   tag_Y    \
                             \
                              --------------- branch_B

当我们运行“git branch --contains tag_X”时,我们将获得

branch_A
branch_B
master

虽然tag_X是在master上创建的,而不是branch_A和branch_B

git中是否有任何命令只显示最初创建标记的特定分支,不包括所有子/子分支?如果没有,任何想法如何得到它(从日志,状态等解析)? 谢谢!

2 个答案:

答案 0 :(得分:0)

Git不存储它。标记只是指向提交的名称。如果查看.git / refs / tags,您将看到一个包含每个标记的提交引用的文本文件。

由于多个分支可以共享相同的提交,因此标记可以属于多个分支。也没有办法从日志中获取,因为唯一存储的是相关提交。

答案 1 :(得分:0)

你是如何尝试的?

git branch --contains <commit>

不确定它是否适用于标记名称,您可能必须执行git show才能获取关联的哈希

取自How to list branches that contain a given commit?