我们正在使用LibGit2Sharp库来处理Github中的提交。
问题:我们需要通过LibGit2Sharp库获取Github中所选分支的所有存储库名称。
哪个类将具有特定分支的存储库名称集合。
我们搜索了下面的LibGit2Sharp文档,但我们没有任何想法。
http://www.nudoq.org/#!/Projects/LibGit2Sharp
任何人都可以提出任何解决方案。
答案 0 :(得分:1)
<强> 强>
在以下答案中,我认为您的意思是:
我们需要获取所选存储库的所有分支机构名称 Github通过LibGit2Sharp库。
以下程序使用 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
如果您需要其他内容,例如分支的Remote
或UpstreamBranchCanonicalName
,则您拥有相关的属性。
答案 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:
希望这有帮助。
最佳。