/ / git2goリモートタグを取得する - git、go、libgit2

git2goリモートタグを取得する - git、go、libgit2

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

私は追加しました(.git / configで複数のrefspecを取得するよう指定できますか?):

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

しかし、それは何もしません。

私もrefspecにタグを追加しましたが、それはエラーを出しました:ref "refs / remotes / origin / master"は宛先にマッチしません

回答:

回答№1は2

のドキュメント Remote.Fetch() 方法に言及する:

空のリストを使用して、構成からのrefspecを使用します。

デフォルトのrefspec タグはインポートされません.
(普通のgitでさえ、 あなたは git fetch --tags)。
デフォルトでは:

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

次のいずれかを実行できます。


旋回 レポート コメントに 持つ このコード ポイントまで作業する:

私がタグを貼り付ける必要があるポイントまで:ピールはどこで git2go 何らかの形でタグに参照を剥がすことができないエラーを返します。