如何使用 LibGit2Sharp 库获取特定选定分支的存储库名称

How to get the repository names for a particular selected branch using LibGit2Sharp library

我们正在使用 LibGit2Sharp 库来处理 Github 中的提交。

问题: 我们需要通过 LibGit2Sharp 库获取 Github 中所选分支的所有存储库名称。

class 将收集特定分支的存储库名称。

我们搜索了以下 LibGit2Sharp 文档,但没有得到任何想法。

http://www.nudoq.org/#!/Projects/LibGit2Sharp

任何人都可以提出任何解决方案。

免责声明:

在下面的回答中,我假设你的意思是:

We need to get all the branch names for the selected repository in Github through LibGit2Sharp library.

使用存储库的分支 属性 Class

以下程序使用 Repository.Branches 属性 然后对其进行迭代:

class Program
{
    // Tested with LibGit2Sharp version 0.21.0.176
    static void Main(string[] args)
    {
        // Load the repository with the path (Replace E:\mono2 with a valid git path)
        Repository repository = new Repository(@"E:\mono2");
        foreach (var branch in repository.Branches)
        {
            // Display the branch name
            System.Console.WriteLine(branch.Name);
        }
        System.Console.ReadLine();
    }
}

程序的输出将显示如下内容:

origin/mono-4.0.0-branch 
origin/mono-4.0.0-branch-ServiceModelFix
upstream/mono-4.0.0-branch-c5sr2

如果您需要分支的 RemoteUpstreamBranchCanonicalName 等其他内容,您可以使用相关的 属性.

我将进行猜测并假设您的意思如下:

尝试列出给定存储库的所有文件和目录。

这实际上意味着您想要 运行 命令:git ls-files

我参考了以下 link : https://github.com/libgit2/libgit2sharp/wiki/Git-ls-files

下面的代码片段应该可以解决问题:

using System;
using LibGit2Sharp;

class Program
{
    public static void Main(string[] args)
    {
        using (var repo = new Repository(@"C:\Repo"))
        {
            foreach (IndexEntry e in repo.Index)
            {
                Console.WriteLine("{0} {1}", e.Path, e.StageLevel);
            }
        }

        Console.ReadLine();
    }
}

我还要补充一点,如果你知道git命令,那么你可以在github project wiki上找到对应的api for libgit2sharp :

希望对您有所帮助。

最佳。