查找给定提交的标记信息

有没有办法让标签与Git中的提交号码相关联?

对于我通常使用类似v1.1.0的标签进行标记。 在构build脚本期间,我创build了一个包含当前git信息的fwVersion.c文件。 目前,我已经提交,并在文件中的分支信息,但我想添加标签。

这可能吗?

检查文档的git describe 。 它查找给定提交(即指向提交的祖先的标记)的最近标记,并描述该提交的标记。

如果你只想知道提交是否被一个标签指向,那么你可以检查输出:

 git describe --exact-match <commit-id> 

如果你想要的是包含提交的第一个标签,那么:

 git describe --contains <commit> 

IMO给出了最好的答案。 如果你有一个频繁的标签,而不是使用“git tag –contains”,那么在一个大的版本库中,旧的提交可能需要一段时间才能运行,并为你提供所有包含该提交的标签。

这种forms的git describe运行速度非常快,并为您提供了一个单一的输出值,这是包含提交的第一个标记以及提交的距离。

您可以在手册中find这些信息

 git tag --contains <commit> 

对不起,我不知道如何添加评论,所以张贴答案…我发现两个上衣的组合答案给我我想这样的:

 git describe --tags --exact-match <commit-id> 

这会给你提供仅用于提交的标签和没有注释的标签。 当你想要查找标签而不用担心剥离格式(例如Jenkins)时很有用。

例如。 $ git describe --tags --exact-match head~2

给你:

 $ ReleaseBeta 

这个怎么样?

git tag --points-at <commit-id>

它给你所有的标签给定的提交(而git describe只给你一个),并不包括后代提交标签(如git tag --contains )。