我需要使用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代码?
谢谢大家。
答案 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);
}
还有其他(更好或更好)的方法吗?