如何使用libgit2sharp推送标签

Dan*_*iel 1 c# libgit2sharp

我需要使用libgit2sharp将本地存在的标签推送到远程。但是我找不到怎么做。

我在libgit2sharp的github仓库(问题和测试用例)中进行了大量搜索,但没有发现任何问题。

有一些关于替代方法的讨论git push --tags,人们说此命令只是git push <remote> refs/tags/*:refs/tags/*对它的一种语法糖,而这正是您需要在libgit2sharp中执行的操作才能使标签被推送。

但是我怎么翻译这个命令

git push <remote> refs/tags/*:refs/tags/*
Run Code Online (Sandbox Code Playgroud)

放入libgit2sharp代码?

谢谢你们。

Dan*_*iel 5

好吧,我在方法中发现了问题。我正在做这样的事情:

repo.Network.Push(repo.Network.Remotes["origin"], @"refs/tags/*", options);
Run Code Online (Sandbox Code Playgroud)

但是libgit2sharp不允许使用通配符(*)。然后,我进行了一个测试,删除了通配符,并用我的标签之一的名称对其进行了更改,然后它起作用了。

但是我仍然需要向远程发送多个标签,我通过使用foreach循环进行了变通,如下所示:

foreach (var tag in repositorio.Tags)
{
    repo.Network.Push(repo.Network.Remotes["origin"], tag.CanonicalName, options);
}
Run Code Online (Sandbox Code Playgroud)

还有另一种(更好或更正确的)方法吗?