给定一个实例,LibGit2Sharp.Commit我如何计算出Branch存在的内容
1 回答
2
其实这个Commit可能存在很多Branches上。它甚至可以被Tags 或. 指向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 回答