C# 如何使用libgit2sharp推送标签

C# 如何使用libgit2sharp推送标签,c#,libgit2sharp,C#,Libgit2sharp,我需要使用libgit2sharp将本地存在的标记推送到远程。但是我找不到怎么做 我在github repo中搜索了很多libgit2sharp问题和测试案例,但什么都没有找到 关于git push-tags的替代方案,人们说这个命令只是git push-refs/tags/*:refs/tags/*的一个语法糖,而这正是您在libgit2sharp中需要做的,以便推送标记 但是我如何翻译这个命令呢 git push <remote> refs/tags/*:refs/tags/*

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

我在github repo中搜索了很多libgit2sharp问题和测试案例,但什么都没有找到

关于git push-tags的替代方案,人们说这个命令只是git push-refs/tags/*:refs/tags/*的一个语法糖,而这正是您在libgit2sharp中需要做的,以便推送标记

但是我如何翻译这个命令呢

git push <remote> refs/tags/*:refs/tags/*
到libgit2sharp代码中


谢谢大家。

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

repo.Network.Push(repo.Network.Remotes["origin"], @"refs/tags/*", options);
foreach (var tag in repositorio.Tags)
{
    repo.Network.Push(repo.Network.Remotes["origin"], tag.CanonicalName, options);
}
但是libgit2sharp不允许使用通配符*。然后我做了一个测试,删除了通配符,并用我的一个标记的名称对其进行了更改,结果成功了

但我仍然需要向remote发送多个标记,我使用foreach循环做了一个变通方法,如下所示:

repo.Network.Push(repo.Network.Remotes["origin"], @"refs/tags/*", options);
foreach (var tag in repositorio.Tags)
{
    repo.Network.Push(repo.Network.Remotes["origin"], tag.CanonicalName, options);
}

还有其他更好或正确的方法吗?

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

repo.Network.Push(repo.Network.Remotes["origin"], @"refs/tags/*", options);
foreach (var tag in repositorio.Tags)
{
    repo.Network.Push(repo.Network.Remotes["origin"], tag.CanonicalName, options);
}
但是libgit2sharp不允许使用通配符*。然后我做了一个测试,删除了通配符,并用我的一个标记的名称对其进行了更改,结果成功了

但我仍然需要向remote发送多个标记,我使用foreach循环做了一个变通方法,如下所示:

repo.Network.Push(repo.Network.Remotes["origin"], @"refs/tags/*", options);
foreach (var tag in repositorio.Tags)
{
    repo.Network.Push(repo.Network.Remotes["origin"], tag.CanonicalName, options);
}

还有其他更好或正确的方法吗?

没有循环的唯一方法是模拟git push origin-tags命令,但我不知道如何做。没有循环的唯一方法是模拟git push origin-tags命令,但我不知道如何做。