当前位置:  开发笔记 > 编程语言 > 正文

如何找到与给定git提交相关联的标记?

如何解决《如何找到与给定git提交相关联的标记?》经验,为你挑选了5个好方法。

对于版本,我通常标记为v1.1.0.在我的构建脚本中,我正在创建一个包含当前git信息的fwVersion.c文件.目前,我在文件中提交了分支信息,但我想添加标记.

这可能吗?



1> CB Bailey..:

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

如果您只想知道标记是否指向了提交,那么您可以检查输出:

git describe --exact-match 


`git describe --tags `用于未注释的标签
在较新的版本中,当你不想在标签上使用垃圾时,`git describe --tags --abbrev = 0 REV`会很有用.

2> 小智..:

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

git describe --contains 

给出最佳答案IMO.如果你有频繁的标签而不是在大型存储库中的旧提交上使用"git tag --contains",则可能需要一段时间才能运行,并为您提供包含该提交的所有标记.

这种形式的git describe运行得非常快,并为您提供单个输出值,这是包含提交的第一个标记以及提交的返回距离.



3> Albertas Age..:

这个怎么样?

git tag --points-at

它为您提供了给定提交的所有标记(而git describe只提供了一个),并且不包含后代提交的标记(如同git tag --contains).



4> dharga..:

您可以在手册中找到此信息

git tag --contains 


正如Charles Bailey上面所说,这并不是我正在寻找的.也许你应该RTFM :)
在你问一个关于SO的git问题之前,你不需要阅读整本git手册,对吧?google索引比任何git手册页都要好得多......
这将列出包含给定提交的所有标记(即指向给定提交的子标记的标记),因此它不一定会为给定提交提供单个标记或关于哪个标记最接近的任何信息,除非list只包含一个提交.

5> 小智..:

对不起,我不知道如何添加评论,所以发布答案......我发现两个上衣的组合答案给了我想要的东西:

git describe --tags --exact-match 

这为您提供了仅适用于该提交的标记以及没有注释的标记.当你想要找到标签而不担心剥离格式时很有用(例如Jenkins).

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

给你:

$ ReleaseBeta

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有