【问题标题】:git2go fetch remote tagsgit2go 获取远程标签
【发布时间】:2014-12-15 12:03:26
【问题描述】:

我正在尝试使用 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' doesn't match the destination

【问题讨论】:

    标签: git go libgit2


    【解决方案1】:

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

    使用空列表来使用配置中的 refspec。

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

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

    您可以:


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

    直到我需要剥离标签:Peel 是git2go 以某种方式返回错误的地方,它无法将引用剥离到标签中。

    【讨论】:

    • 感谢您迄今为止的帮助。我阅读了您传递的链接,但似乎无法设置正确的参考规范:我应该在此处输入什么?我使用 remote.Fetch([]string{"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 配置,但它看起来与这些 refspecs 相同..
    • @user1979738 你可以试试看,"+refs/heads/*:refs/heads/*", "refs/tags/*:refs/tags/*" 吗?这也可能意味着没有正确定义远程“原点”。
    • 它仍然给我同样的结果:'refs/remotes/origin/master' 与目的地不匹配。
    猜你喜欢
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 2019-03-10
    • 2015-09-15
    • 2014-01-11
    相关资源
    最近更新 更多