给定一个实例,LibGit2Sharp.Commit
我如何计算出Branch
存在的内容
问问题
246 次
1 回答
2
其实这个Commit可能存在很多Branch
es上。它甚至可以被Tag
s 或. 指向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]);
于 2013-08-17T09:54:20.473 回答