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

时间:2016-01-15 06:37:19

标签: c# github libgit2sharp

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

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

哪个类将具有特定分支的存储库名称集合。

我们搜索了下面的LibGit2Sharp文档,但我们没有任何想法。

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

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

2 个答案:

答案 0 :(得分:1)

<强>

声明:

在以下答案中,我认为您的意思是:

  

我们需要获取所选存储库的所有分支机构名称   Github通过LibGit2Sharp库。

使用Repository Class

的Branches属性

以下程序使用 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,则您拥有相关的属性。

答案 1 :(得分:0)

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

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

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

我引用了以下链接: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上找到libgit2sharp的相应api:

希望这有帮助。

最佳。