¿Cómo resolver Branch desde LibGit2Sharp.Commit?

Dada una instancia de un LibGit2Sharp.Commit ¿cómo puedo averiguar qué Branch existe?

De hecho, este Compromiso puede existir en muchas Branch . Incluso podría ser señalado por Tag o por el Stash .

Si desea conocer todas las references que conducen a una confirmación específica, el método .ReachableFrom() puede ajustarse a esa necesidad:

 IEnumerable<Reference> refs = repo.Refs.ReachableFrom(new[] { my_commit }); 

Si desea limitar las references recuperadas que se buscan solo a las cabeceras locales, una sobrecarga de este método acepta un subset de references para trabajar con:

 IEnumerable<Reference> localHeadRefs = repo.Refs.ReachableFrom( repo.Refs.Where(r => r.IsLocalBranch()), new[] { my_commit }); 

Luego, recuperar una list de Branch es se puede hacer de esta manera:

 IEnumerable<Branch> branches = localHeadRefs .Select(reference => repo.Branches[reference.CanonicalName]);