2016-10-12 7 views
2

LibGit2Sharpを使用して、repoのURLを指定してすべてのリモートブランチのリストを取得するにはどうすればよいですか?LibGit2Sharpをローカルリポジトリなしでネットワークパスから使用してGit Repoのブランチとコミットを取得する方法は?

私はローカルディスク上にレポのクローンを持っていません。ブランチのリストを取得する最も単純な方法は何ですか?ブランチのリストを取得したら、自分のブランチにコミットIDのリストを取得したいと思います。

ローカルディスクに複製されたGit Repoがある場合は、この情報を取得するためにクローンする必要はありません。

答えて

1

LibGit2Sharpを使用して、repo urlを指定したすべてのリモートブランチのリストを取得するにはどうすればよいですか?

私はローカルディスク上にレポのクローンを持っていません。

LibGit2Sharpを通じて、リモートリポジトリの参照(主にブランチとタグ)に関する情報を複製せずに読み取ることができます。これにより、これらの参照の名前とそれぞれが指しているコミットのshaが取得されます。

これは、静的メソッドIEnumerable<Reference> ListRemoteReferences(string url)によって実行できます。これは、CLIコマンドのと同等です。

私がブランチのリストを取得したら、自分のブランチにコミットIDのリストを取得したいと思います。

残念ながら、ListRemoteReferences()は各ブランチの先端のみを返します。 LibGit2Sharpのみを使用してこのブランチで参照される他のコミットを列挙する必要がありますか?リモートリポジトリをローカルでクローンする必要があります。むしろ、クローニングよりも代替として

、あなたはヒントのシャスを持ったら、あなたはCommit GitHub APIを活用し、それぞれの可能性がコミット、再帰のそれぞれのAPI呼び出しを再適用、その親(複数可)を取得しますそれら。この最後のオプションはパフォーマンスがはるかに劣ることに注意してください(ネットワークI/O、APIレート制限など)。

関連する問題