使用LibGit2Sharp,如何在给定repo url的情况下获取所有远程分支的列表?
我在本地磁盘上没有该存储库的克隆。获取分支列表的最简单方法是什么,一旦获得分支列表,我想在自己选择的分支中获取“提交ID”列表。
如果我在本地磁盘上克隆了一个Git Repo,我确实看到了一种执行所有方法的方法,但是,我不想克隆它来获取此信息。
使用LibGit2Sharp,如何在给定repo url的情况下获取所有远程分支的列表?
我在本地磁盘上没有该存储库的克隆。获取分支列表的最简单方法是什么
通过LibGit2Sharp,可以读取有关远程存储库的引用(主要是分支和标签)的信息,而无需对其进行克隆。这将检索这些引用的名称以及每个引用指向的提交的阴影。
这可以通过IEnumerable<Reference> ListRemoteReferences(string url)
静态方法来完成。这等效于git ls-remote CLI命令。
一旦获得分支机构列表,我想在自己选择的分支机构中获得Commit Id的列表。
不幸的是,ListRemoteReferences()
只会返回每个分支的尖端。您是否需要枚举此分支引用的其他提交,仅使用LibGit2Sharp,就必须在本地克隆远程存储库。
作为替代方法,而不是克隆方法,一旦掌握了技巧的SHA,您可以利用Commit GitHub API,并针对每个提交检索其父代,然后递归地重新应用每个API的调用。请注意,这最后一个选项的性能要差得多(网络I / O,API速率限制等)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句