Git:如何找出标签的分支?

时间:2013-04-04 08:45:34

标签: git tags branch

我目前正在忙着一个有很多分支的项目,我有一个标签用于最后一次更改,其中一个分支完成。但是我不清楚这个标签是哪个分支。

如何找出标签所在的分支?

7 个答案:

答案 0 :(得分:73)

更短:

git branch --contains tags/<tag>

(适用于任何树形参考)


如果你能找到which commit a tag refers to

 git rev-parse --verify tags/<tag>^{commit}
 # or, shorter:
 git rev-parse tags/<tag>~0

然后你可以找到which branch contain that commit

git branch --contains <commit>

下面的commented user3356885,对于获取的分支(在远程命名空间中的分支)

git branch -a --contains tags/<tag>
git branch -a --contains <commit>

答案 1 :(得分:15)

如果“git branch --contains”什么都不做,请确保包含所有分支,包括远程和本地分支:

git branch -a --contains <tag>
  

来自git帮助:

     

特定的git-branch动作:       -a, - all列出远程跟踪和本地分支

答案 2 :(得分:5)

git branch --contains tag

对我没有任何帮助,但我在 git gui 中找到了解决此问题的方法。

像这样开始:

git gui

(在我的Ubuntu上,我必须先用sudo apt-get install git-gui安装它。)

然后我选择了菜单项 Repository - &gt;可视化所有分支历史记录。在结果窗口中,我然后选择菜单项文件 - &gt;列表参考

弹出另一个窗口,列出我的所有标签(以及其他参考文献)。这些是可点击的,点击其中一个之后我只需检查左下方框架的分支列表。像这样:

Parent: somesha (message)
Parent: someothersha (another message)
Child:  anothersha (yet another message)
Branches: branch1, master, remotes/origin/branch2, remotes/upstream/branch1, etc
Follows: v1.1.2
Precedes: v1.1.4

答案 3 :(得分:0)

使用标记标记参考。所以当你在dev分支上并标记这个状态时。您的标签是实际参考。因此,在这种情况下,您可以查看 gitk 或其他显示树的工具。在那里你可以看到Tag的参考文献。

git: Is there something like per-branch tags?
http://git-scm.com/book/en/Git-Basics-Tagging

这是一个很好的解释。

答案 4 :(得分:0)

关于@ VonC关于查找标签引用的提交的评论,只需使用:

git show <tag>

由于标记与特定提交相关联,因此可以使用它来显示提交 - 这将为您提供完整的提交详细信息。

答案 5 :(得分:0)

标签始终引用提交编号。使用该标签号,您可以使用以下命令找到放置标签的分支:

git for-each-ref | grep ${commit_num} | grep origin | sed "s/.*\///"

答案 6 :(得分:0)

您也可以尝试一下,有类似的用例,这对我有用

git ls-remote --heads origin | grep $CI_COMMIT_SHORT_SHA  | sed "s/.*\///"

稍有不同,但从@ttfreeman的答案中汲取了灵感