質問: クローンとプッシュの際にGITはどのようなHTTPプロトコルを使用しますか? 私はLibGit2Sharpライブラリを使用して、クローンやASP.MVCでのプッシュなどの基本的なGITコマンドを再利用しようとしていますが、それに応じてコントローラを設定する必要があります。 プッシュをクローン作成するときにGITはHTTP GETとPOSTリクエストを開始しますか?そして、私のコントローラーを ``` [HttpGet] public ActionResult Clone(string path) { //Return repo as stream? } [HttpPost] public ActionResult Push(string path) { //Commit to repo } ``` ありがとう
回答: 私が理解しているところから、あなたはgit-daemonに似た何かをコーディングしようとしています。 残念ながら、LibGit2Sharpはまだネットワーク関連の機能を実装していません。 したがって、ASP.Net MVCから `push` 、 `pull` 、 `clone` 、または `Fetch` リクエストを提供することはできません。 @synhershko 's issue in LibGit2Sharp tracker deals with a related subject: **Proper pull, fetch, merge support** **EDIT:** If you wish to get a better understanding about Git transfer protocols from an HTTP perspective, I'd warmly recommend the following resources to start with: * Pro Git - 転送プロトコル * スマートHTTP転送 次に、コードがどのように機能するのかをよりよく把握するために、コードを掘り下げなければならないのではないかと心配しています。私の経験では、Jit(JavaのGit再実装)コードは、元々のGit Cコードへの直接的な潜入よりも少し簡単です。 JGitトランスポート関連のコードは **[ここ](http://egit.eclipse.org/w/?p=jgit.git;a=tree;f=org.eclipse.jgit/src/org/eclipse/jgit/transport; h = 4e36b8807fa1c0f1af6d50dd2d746f58c101e25c; hb = HEAD )**