簡體   English   中英

有沒有一種方法可以使用libgit2sharp從遠程git存儲庫中獲取特定標簽?

[英]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.

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