如何使用 LibGit2Sharp 获取当前分支?

How to get the current branch with LibGit2Sharp?

如何获取特定目录的分支,即使该目录不是存储库的根目录? iow 相当于

git branch --show-current

(即使在子目录中也能正常工作)。

根据对 this similar question 的回答,我做了如下操作,它只在 repo 的根目录中有效:

using (var git = new Repository("repo_root\subdir")) // throws if subdir
{
  return git.Head.FriendlyName;
}

糟糕,找到了:

using (var git = new Repository(
  LibGit2Sharp.Repository.Discover(@"repo_root\subdir")))
{
  return git.Head.FriendlyName;
}