gpt4 book ai didi

git2go 获取远程标签

转载 作者:IT王子 更新时间:2023-10-29 01:11:09 26 4
gpt4 key购买 nike

我正在尝试使用 git2go( https://github.com/libgit2/git2go ) 从远程获取标签。当我克隆存储库时,我可以使用以下代码列出所有标签:

iter, err := repository.NewReferenceIterator()

ref, err := iter.Next()
for err == nil {
if ref.IsTag() {
fmt.Println(ref.Name())
}

ref, err = iter.Next()
}

但是当我从远程获取代码时,它不会更新标签。我从存储库中获取新代码:

remote, err := p.repository.LoadRemote("origin")
remote.Fetch([]string{}, nil, "")

这是我的配置:

[core]
bare = false
repositoryformatversion = 0
filemode = true
logallrefupdates = true
[remote "origin"]
url = file:///home/testrepo

fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master

我已经添加了(Can I specify in .git/config to fetch multiple refspecs?):

fetch = refs/tags/*:refs/tags/*

但这并没有做任何事情。

我还在 refspec 中添加了标签,但这给出了错误:ref 'refs/remotes/origin/master' 与目的地不匹配

最佳答案

Remote.Fetch() 的文档方法提到:

use an empty list to use the refspecs from the configuration.

default refspec does not import tags .
(即使使用常规 git,you would need a git fetch --tags)。
默认情况下:

[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*

您可以:


gyre报道 in the commentsthis code工作到一定程度:

up to the point where I need to PEEL the tag: Peel is where git2go somehow returns errors that it can't peel the reference into tag.

关于git2go 获取远程标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26466784/

26 4 0