C# 如何使用LibGit2Sharp库获取特定选定分支的存储库名称
我们正在使用LibGit2Sharp库来处理Github中的提交C# 如何使用LibGit2Sharp库获取特定选定分支的存储库名称,c#,github,libgit2sharp,C#,Github,Libgit2sharp,我们正在使用LibGit2Sharp库来处理Github中的提交 问题:我们需要通过LibGit2Sharp库获取Github中所选分支的所有存储库名称 哪个类将拥有特定分支的存储库名称集合 我们搜索了下面的LibGit2Sharp文档,但没有找到任何想法 任何人都可以提出任何解决方案。免责声明: 在下面的回答中,我假设你的意思是: 我们需要在中获取所选存储库的所有分支名称 通过LibGit2Sharp库实现Github 使用Repository类的Branchs属性 以下程序使用存储库。分支
问题:我们需要通过LibGit2Sharp库获取Github中所选分支的所有存储库名称 哪个类将拥有特定分支的存储库名称集合 我们搜索了下面的LibGit2Sharp文档,但没有找到任何想法 任何人都可以提出任何解决方案。免责声明: 在下面的回答中,我假设你的意思是: 我们需要在中获取所选存储库的所有分支名称 通过LibGit2Sharp库实现Github 使用Repository类的Branchs属性 以下程序使用
存储库。分支
属性,然后对其进行迭代:
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
如果您需要分支的
远程
或上游BranchCanonicalName
之类的其他内容,则您拥有相关的属性。我将猜测并假设您的意思如下:
尝试列出给定存储库的所有文件和目录。
这实际上意味着您要运行命令: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命令,那么您可以在for libgit2sharp上找到相应的api:
希望这有帮助
最佳。“我们需要在Github中获取所选分支的所有存储库名称”:您有输入和所需输出的示例吗?您所说的“存储库名称”到底是什么意思?目前,问题还很不清楚。如果我们在Github中选择分支,它必须列出其在所选分支下的所有存储库/文件夹。@Skyrim我建议您浏览这些链接,并将其作为参考。是否要在给定分支的单个存储库下列出所有文件和文件夹的名称?似乎您在没有澄清问题的情况下添加了悬赏……我们需要通过LibGit2Sharp库获取Github中所选分支的所有存储库名称。“这就是我们需要的,”Skyrim说。存储库名称是什么意思?git中的repository是指托管在Github中的远程存储库的本地克隆。顺便说一句,libgit2sharp使您能够查询本地克隆,而不是动态请求github远程数据,例如给定repo的分支。