使用LibGit2Sharp,如何在给定repo url的情况下获取所有远程分支的列表?
我没有本地磁盘上的repo克隆。获取分支列表的最简单方法是什么,一旦我得到分支列表,我想在我选择的分支中获取提交ID的列表。
如果我在本地磁盘上克隆了Git Repo,我确实看到了这样做的方法,但是,我不想克隆它以获取此信息。
答案 0 :(得分:1)
使用LibGit2Sharp,如何在给定repo url的情况下获取所有远程分支的列表?
我没有本地磁盘上的repo克隆。获取分支列表
的最简单方法是什么
通过LibGit2Sharp,可以读取有关远程存储库的引用(主要是分支和标记)的信息,而无需克隆它。这将检索这些引用的名称以及每个引用提交的sha。
这可以通过IEnumerable<Reference> ListRemoteReferences(string url)
静态方法完成。这相当于 git ls-remote CLI命令。
一旦我获得了分支列表,我想在我选择的分支中获取提交ID的列表。
不幸的是,ListRemoteReferences()
只会返回每个分支的提示。您是否需要枚举此分支引用的其他提交,仅使用LibGit2Sharp,您必须在本地克隆远程存储库。
作为替代方案,而不是克隆,一旦你获得了提示的SHA,你可以利用 Commit GitHub API ,并且对于每次提交,检索其父级,以递归方式重新应用每个API调用。请注意,最后一个选项的性能要差得多(网络I / O,API速率限制,......)。