gpt4 book ai didi

git - 如何获取远程存储库中提交哈希的 git 标签?

转载 作者:行者123 更新时间:2023-12-05 02:17:56 25 4
gpt4 key购买 nike

通过执行以下操作,您可以获得指向本地存储库中特定提交的标记:

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

或者这个:

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

这是否也适用于远程存储库,甚至无需克隆存储库?

最佳答案

git ls-remote -t <remote> | grep <commit-hash>

git ls-remote列出远程存储库中的所有 refs 及其 sha1 值。 -t仅限于标签。如果你在本地git仓库下,远程是origin , <remote>可以省略。如果指定 <remote>,则可以在任何地方运行该命令喜欢https://github.com/foo/bar.git . -t必须在 <remote> 之前如果<remote>存在于命令中。查看更多信息 git-ls-remote .

更新:

不,没有像 --points-at 这样的东西对于 git ls-remote .如果您知道标签名称,git ls-remote <remote> <tag_name>返回 sha 和标签,但不可能从 sha 到标签名称。

标签有两种类型。一种是轻量级标签,另一种是注释标签。前者只是一个 ref,后者是一个 git 对象。 Git 有四种对象,commit , tag , treeblob .

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

如果v1.0是一个带注释的标签,v1.0是一个标签对象,v1.0^{}是它所指的提交。作为带注释的标签,v1.0v1.0^{}许多 git 命令都是相同的,例如 git log , git show , git diff , 当它们被解析为 committree .在 git log v1.0 , v1.0commit-ish .作为commit-ish , v1.0v1.0^{}引用相同的提交。所以我们从 git log v1.0 得到相同的输出和 git log v1.0^{} .对于其他 git 命令,如 git rev-parse , 它们不一样。在 git rev-parse -t v1.0 , v1.0是一个标签对象。而在 git rev-parse -t v1.0^{} , v1.0^{}是一个提交对象。

关于git - 如何获取远程存储库中提交哈希的 git 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46536306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com