给定LibGit2Sharp.Commit
的实例我如何计算
Branch
答案 0 :(得分:2)
事实上,这个提交可能存在于许多Branch
es。它甚至可以由Tag
或Stash
指向。
如果想知道导致特定提交的所有引用,.ReachableFrom()
方法可能只适合这种需要:
IEnumerable<Reference> refs = repo.Refs.ReachableFrom(new[] { my_commit });
如果您希望将检索到的引用限制为仅限于本地头,则此方法的重载接受要使用的引用子集:
IEnumerable<Reference> localHeadRefs = repo.Refs.ReachableFrom(
repo.Refs.Where(r => r.IsLocalBranch()),
new[] { my_commit });
然后,检索Branch
es的列表可以这样做:
IEnumerable<Branch> branches = localHeadRefs
.Select(reference => repo.Branches[reference.CanonicalName]);