[英]Is there a way to fetch a specific tag from a remote git repository using libgit2sharp ?
我設置了一個名為“ origin”的遠程服務器,並將該遠程服務器克隆到本地目錄,並將checkout設置為false,以便獲取遠程標簽。 我可以列出遠程標簽,但是找不到任何獲取內容的方法。
如果我在checkout設置為true的情況下調用clone,我將獲得HEAD,但是我希望能夠回滾到特定的標記版本,並且看不到它。
您可以簽出任何任意提交,包括標簽(例如:' lw
'):
string commitPointer = refs/tags/lw;
var commit = repo.Lookup<Commit>(commitPointer);
Branch detachedHead = repo.Checkout(commitPointer);
但是,您將陷入困境:
Assert.Equal("(no branch)", detachedHead.CanonicalName);
Assert.False(master.IsCurrentRepositoryHead);
Assert.True(repo.Info.IsHeadDetached);
但是那個HEAD確實引用了您的標簽:
Assert.True(detachedHead.IsCurrentRepositoryHead);
Assert.Equal(repo.Head, detachedHead);
Assert.Equal(commit.Sha, detachedHead.Tip.Sha);
Assert.True(repo.Head.IsCurrentRepositoryHead);
Assert.False(repo.Index.RetrieveStatus().IsDirty);
Assert.False(detachedHead.IsRemote);
Assert.Equal(detachedHead.Name, detachedHead.CanonicalName);
在“ LibGit2Sharp.Tests/CheckoutFixture.cs#CanCheckoutAnArbitraryCommit()
”中查看更多內容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.