0

我正在尝试从 git 标签获取文件树,一切正常,直到我发现一些标签没有注释,因此不是 TagObject

这是我当前的代码:

var obj *plumbing.Reference
obj, err = r.Tag(tag)
checkError(err)

var t *object.Tag
t, err = r.TagObject(obj.Hash())
checkError(err)

var tree *object.Tree
tree, err = t.Tree()
checkError(err)

但现在我必须将其更改为以下内容才能访问轻量级标签

var obj *plumbing.Reference
obj, err = r.Tag(tag)
checkError(err)

var t *plumbing.Reference
t, err = r.Tag(obj.Name().String())
checkError(err)

var tree *object.Tree
tree, err = t.Tree()
checkError(err)

第三部分 (tree, err = t.Tree()) 当然不再起作用,因为 *plumbing.Reference 没有字段或方法 Tree

有什么办法可以从

t, err = r.Tag(obj.Name().String())

得到一棵树?

4

0 回答 0