首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为远程存储库中的提交哈希获取git标记?

如何为远程存储库中的提交哈希获取git标记?
EN

Stack Overflow用户
提问于 2017-10-03 02:22:34
回答 1查看 4K关注 0票数 3

通过这样做,您可以在本地存储库中获取指向特定提交的标记:

代码语言:javascript
复制
git tag --points-at <commit-hash>

或者这个:

代码语言:javascript
复制
git describe --exact-match <commit-hash>

对于远程存储库来说,这也是可能的,甚至不需要克隆存储库吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-03 02:49:18

代码语言:javascript
复制
git ls-remote -t <remote> | grep <commit-hash>

git ls-remote列出了远程存储库中的所有引用及其sha1值。-t仅限于标记。如果您位于本地git存储库下,并且远程是origin,则可以省略<remote>。如果指定<remote> (如https://github.com/foo/bar.git ),则可以在任何地方运行该命令。如果命令中存在-t,则必须在<remote>之前使用<remote>。在git-ls-远程可以看到更多信息。

更新:

不,没有类似于--points-at for git ls-remote的东西。如果您知道一个标记名,git ls-remote <remote> <tag_name>将返回sha和标记,但不可能从sha返回到标记名。

标签有两种类型。一个是轻量级标记,另一个是带注释的标记。格式化器只是一个参考,而后者是一个git对象。Git有四种对象:committagtreeblob

如果v1.0是一个轻量级标记,那么v1.0v1.0^{}是相同的。

如果v1.0是一个anotated标记,那么v1.0是一个标记对象,v1.0^{}是它所引用的提交。作为一个标记,v1.0v1.0^{}对于许多git命令是相同的,例如git loggit showgit diff,当它们被解析为committree时。在git log v1.0中,v1.0commit-ish。作为一个commit-ishv1.0v1.0^{}引用相同的提交。因此,我们从git log v1.0git log v1.0^{}获得相同的输出。对于像git rev-parse这样的其他git命令,它们是不同的。在git rev-parse -t v1.0中,v1.0是一个标记对象。在git rev-parse -t v1.0^{}中,v1.0^{}是一个提交对象。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46536306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档