簡體   English   中英

如何使用libgit2sharp拉所有新標簽

[英]How to pull all new tags using libgit2sharp

我想使用libgit2sharp實現git pull --tags 如果我嘗試做這樣的拉力:

repo.Network.Pull(new Signature("name", "my@email.com", new DateTimeOffset()), new PullOptions());

然后我得到新的提交,但沒有指向這些提交的新標簽。 我試圖使用PullOptions來修改這樣的行為:

var sig = new Signature("name", "my@email.com", new DateTimeOffset());
var opts = new PullOptions{ FetchOptions = new FetchOptions {TagFetchMode = TagFetchMode.All} };
repo.Network.Pull(sig, opts);

這將引發以下異常:

LibGit2Sharp.LibGit2SharpException: ref 'refs/remotes/origin/master' doesn't match the destination
  at LibGit2Sharp.Core.Ensure.HandleError(Int32 result)
  at LibGit2Sharp.Core.Ensure.ZeroResult(Int32 result)
  at LibGit2Sharp.Core.Proxy.git_remote_fetch(RemoteSafeHandle remote, Signature signature, String logMessage)
  at LibGit2Sharp.Network.DoFetch(RemoteSafeHandle remoteHandle, FetchOptions options, Signature signature, String logMessage)
  at LibGit2Sharp.Network.Fetch(Remote remote, FetchOptions options, Signature signature, String logMessage)
  at LibGit2Sharp.Network.Pull(Signature merger, PullOptions options)

有任何想法嗎?

坦率地說,我在最新的官方git 文檔中找不到任何--tags選項。

但是,在LibGit2Sharp中,您可以使用以下代碼(或其他.Fetch()重載之一)執行等效的git fetch --all

repo.Network.Fetch(remote, new FetchOptions { TagFetchMode = TagFetchMode.All });

更新

LibGit2Sharp vNext分支的當前提示不喜歡此代碼。 但是,如您所提出的問題所示,確實會拋出v0.20.x版本。

v0.21將解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM