git2go获取远程标记
我正试图用git2go()从远程设备获取标签。 克隆存储库时,我可以使用以下代码列出所有标记:git2go获取远程标记,git,go,libgit2,Git,Go,Libgit2,我正试图用git2go()从远程设备获取标签。 克隆存储库时,我可以使用以下代码列出所有标记: iter, err := repository.NewReferenceIterator() ref, err := iter.Next() for err == nil { if ref.IsTag() { fmt.Println(ref.Name()) } ref, err = iter.Next() } 但是当我从远程获取代码时,它不会更新标记。 I
iter, err := repository.NewReferenceIterator()
ref, err := iter.Next()
for err == nil {
if ref.IsTag() {
fmt.Println(ref.Name())
}
ref, err = iter.Next()
}
但是当我从远程获取代码时,它不会更新标记。
Im正在从存储库中获取新代码,其中包含:
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
我添加了()
但这没有任何作用
我还在refspec中添加了标记,但这导致了错误:ref'refs/remotes/origin/master'与目标不匹配方法的文档提到:
使用空列表可使用配置中的参照规范
(即使使用常规git,)。
默认情况下:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
您可以:
- 在
方法中使用非空的refspec列表Fetch()
[]string{"+refs/heads/*:refs/remotes/origin/*", "refs/tags/*:refs/tags/*"}
- 或者也可以使用(与git2go一起)的
报告工作到某一点: 直到我需要剥离标记的地方:剥离是指
git2go
以某种方式返回错误,无法将引用剥离到标记中
谢谢你迄今为止的帮助。我阅读了您传递的链接,但似乎无法设置正确的refspec:我应该在这里输入什么?我使用remote.Fetch([]字符串{“refs/tags/*:refs/tags/*”},nil,”),但这给了我一个错误:“refs/remotes/origin/master”与目标不匹配。@user1979738
“+refs/heads/*:refs/remotes/origin/*”,“refs/tags/*:refs/tags/*”
。我已编辑了答案。仍然收到错误:ref'refs/remotes/origin/master'与目标不匹配。我已经添加了克隆的repo配置,但它看起来确实与这些refspec相同。@user1979738您可以尝试一下,只是检查一下,“+refs/heads/*:refs/heads/*”,“refs/tags/*:refs/tags/*”
?这也可能意味着远程“origin”没有正确定义。它仍然给我相同的信息:“refs/remotes/origin/master”与目标不匹配。
[]string{"+refs/heads/*:refs/remotes/origin/*", "refs/tags/*:refs/tags/*"}