如何使用libgit2sharp

时间:2016-06-09 19:42:45

标签: c# libgit2sharp

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

我在libgit2sharp的github repo中搜索了很多(问题和测试用例)并且没有出现任何内容。

There are some discussions关于git push --tags的替代方案,人们说这个命令只是git push <remote> refs/tags/*:refs/tags/*的一个合成糖,而且正是你需要在libgit2sharp中做的才能得到你的标签被推了。

但是我怎样才能翻译这个命令

git push <remote> refs/tags/*:refs/tags/*

进入libgit2sharp代码?

谢谢大家。

1 个答案:

答案 0 :(得分:4)

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

repo.Network.Push(repo.Network.Remotes["origin"], @"refs/tags/*", options);

但是libgit2sharp不允许使用通配符(*)。然后我做了一个测试,删除了通配符并用我的一个标签更改了它,并且它有效。

但是我仍然需要向远程发送多个标签,我通过使用foreach循环做了一个解决方法,如下所示:

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

还有其他(更好或更好)的方法吗?