Ответ 1
Branch.IsCurrentRepositoryHead
должен сделать трюк.
Я думаю, что Repository.Head
также сделает то же самое, если вы не хотите проходить через ветки...
Итак, используя LibGit2Sharp https://github.com/libgit2/libgit2sharp, вы можете пройти через ветки вроде этого
using (var repo = new Repository(@"path to .git"))
{
foreach (var branch in repo.Branches)
{
Debug.WriteLine(branch.Name);
}
}
Но как получить текущую/активную ветвь?
Branch.IsCurrentRepositoryHead
должен сделать трюк.
Я думаю, что Repository.Head
также сделает то же самое, если вы не хотите проходить через ветки...
Я думаю, что вместо того, чтобы проходить через ветки и проверять, является ли каждая ветвь текущей головой, самый простой способ - получить имя ветки из репозитория Head:
using (var repo = new Repository(@"path to .git"))
{
var currentBranchName = repo.Head.FriendlyName;
}
Затем вы можете получить ветвь через
repo.Branches[currentBranchName]