git:是否可以在不克隆的情况下看到带有注释的远程标签?
git: is it possible to see remote tags with annotations without cloning?
我想在不下载任何内容的情况下查看带有注释的远程标签。
我知道我可以看到远程标签,例如git ls-remote --tags origin
,但这不显示注释。
我也知道我可以看到注释,例如git tag -n
,但这需要先获取标签。
有没有办法做到这一点?
对于 Azure DevOps,您确实可以使用 API 来:
GET https://dev.azure.com/fabrikam/_apis/git/repositories/{repositoryId}/refs?filter=tags/&api-version=6.0
这会给你他们的 objectId
2/对于每个标签对象Id,query the annotated tag itself
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/annotatedtags/{objectId}?api-version=6.0-preview.1
您将收到一条 GitAnnotatedTag
,其中包括 message
:标记消息。
嗯,你至少要下载标签注释,对吧?这些在带注释的标签中,您可以非常严格地限制您的获取过滤器。最简单的就是 --filter=blob:none
,但是如果服务器支持它(github 还不支持),您可以使用 --filter=combine:blob:none+tree:0
.
真正限制获取流量
无论如何,目前实施的要求不超过 github 的是
git init `mktemp -d`
cd $_
git fetch --filter=tree:0 u://r/l
git rev-list --tags --no-walk | git cat-file --batch
正如@VonC 指出的那样,任何人都可以在回购协议上提供他们想要的任何 Web(或其他传输)前端,并提供他们想要提供的任何接口。 Git不是关于为远程数据提供网络接口,而是关于获取本地数据,这样您就可以随心所欲地使用它。
我想在不下载任何内容的情况下查看带有注释的远程标签。
我知道我可以看到远程标签,例如git ls-remote --tags origin
,但这不显示注释。
我也知道我可以看到注释,例如git tag -n
,但这需要先获取标签。
有没有办法做到这一点?
对于 Azure DevOps,您确实可以使用 API 来:
GET https://dev.azure.com/fabrikam/_apis/git/repositories/{repositoryId}/refs?filter=tags/&api-version=6.0
这会给你他们的 objectId
2/对于每个标签对象Id,query the annotated tag itself
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/annotatedtags/{objectId}?api-version=6.0-preview.1
您将收到一条 GitAnnotatedTag
,其中包括 message
:标记消息。
嗯,你至少要下载标签注释,对吧?这些在带注释的标签中,您可以非常严格地限制您的获取过滤器。最简单的就是 --filter=blob:none
,但是如果服务器支持它(github 还不支持),您可以使用 --filter=combine:blob:none+tree:0
.
无论如何,目前实施的要求不超过 github 的是
git init `mktemp -d`
cd $_
git fetch --filter=tree:0 u://r/l
git rev-list --tags --no-walk | git cat-file --batch
正如@VonC 指出的那样,任何人都可以在回购协议上提供他们想要的任何 Web(或其他传输)前端,并提供他们想要提供的任何接口。 Git不是关于为远程数据提供网络接口,而是关于获取本地数据,这样您就可以随心所欲地使用它。