使用 LibGit2Sharp https://github.com/libgit2/libgit2sharp,您可以像这样遍历分支。
using (var repo = new Repository(@"path to .git"))
{
foreach (var branch in repo.Branches)
{
Debug.WriteLine(branch.Name);
}
}
但是我如何获取当前/活动分支?
使用 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,直接从仓库Head中获取分支名称是最简单的方法:
using (var repo = new Repository(@"path to .git"))
{
var currentBranchName = repo.Head.FriendlyName;
}
您可以通过以下方式获得分支本身:
repo.Branches[currentBranchName]
Head
来获取分支:repo.Head.Reference.TargetIdentifier
。 - Edward Thomson