是否可以仅从远程存储库获取标记的注释?

时间:2016-02-16 16:48:07

标签: git

我正在为某些开发操作使用git标签,因此问题是:

是否可以仅使用git或更低级别的utils(即upload / fetch pack)或协议本身下载标签的注释消息?

我发现一些不符合要求的“解决方案”:

  • git fetch --tags

  • git clone --branch <tag> --single-branch

  • git clone with --depth=<depth>

所有这些都下载了很多我不需要的数据 我只需要标签注释/消息。理想的解决方案应该允许以最小的带宽开销获取标记消息。

2 个答案:

答案 0 :(得分:0)

  

是否可以仅下载标签的带注释消息

不。

您可以下载所有存储库数据或给定的提交(提交也意味着标记或分支)但您无法获取任何部分数据,除非它是提交树的一部分。

您必须从最近的提交结账,但是您无法获取它们之间存在间隙的提交。

Tag只是对提交的引用,您可以获取所有内容并在代码在本地计算机上时显示消息。

答案 1 :(得分:0)

如果您拥有其他仓库的管理员权限,您可以使用预先接收退出设置它,该退出运行for-each-ref以响应您为此预留的refs。最简单的就是

#!/bin/sh
rc=0
while read old new ref; do
        if [[ $ref = refs/requests/refcontents ]]; then
                git for-each-ref --format='%(refname) %(objectname)

%(contents)
-------- '
        rc=1
        fi
done
exit $rc

请记住,您可以推送到任何仓库,以便测试您可以将其放入.git/hooks/pre-receivechmod +xgit push . @:refs/requests/refcontents