通过libgit2sharp
如何获取本地回购列表?
我在git命令列表中看不到任何有用的内容
https://github.com/libgit2/libgit2sharp/wiki/LibGit2Sharp-Hitchhiker%27s-Guide-to-Git
答案 0 :(得分:2)
通过libgit2sharp如何获取本地回购列表?
LibGit2sharp是一个允许用户与git存储库交互的库。
但是,它没有提供扫描文件系统的任何功能,搜索可能存在的本地存储库。
答案 1 :(得分:0)
如果您实际上是在询问征兵中的分支机构:
public List<string> GetLocalBranchList()
{
var output = new List<string>();
using (var repo = new Repository(_LocalGitPath))
{
foreach (var branch in repo.Branches)
output.Add(branch.FriendlyName);
return output;
}
}
如果你真的是意味着责备而不是分支,那么没有。但是你真的不需要libgit2sharp。只需扫描所有目录中每个登记中存在的一些文件或文件夹(.git隐藏文件夹,.gitignore等)
答案 2 :(得分:0)
这对我使用 libgit2sharp 查找目录(非递归)内的存储库列表很有用。
用法示例:
var gitService = new GitService();
var repositoryPaths = gitService.FindRepositoryPaths(rootDirectory);
public class GitService
{
private const string GitRepoFolder = ".git";
public IEnumerable<string> FindRepositoryPaths(string path)
{
var repositories = new List<string>();
var directories = Directory.EnumerateDirectories(path);
foreach(var directory in directories)
{
var possibleGitDirectory = Path.Combine(directory, GitRepoFolder);
if (Directory.Exists(possibleGitDirectory))
{
try
{
using (var repo = new Repository(directory))
{
if (repo != null)
{
repositories.Add(directory);
}
}
}
catch(RepositoryNotFoundException)
{
}
}
}
return repositories;
}
}