ほとんどの場合、自分で git サーバーを実装したくはありません。Git の設計は lib 化に適していないため、git のファーストクラスのライブラリ バージョンが利用できないという問題が進行中です。
それにもかかわらず、必要に応じていくつかのオプションがあります。
- libgit2、真の C git ライブラリに関する最新の作業、および他の言語へのさまざまなバインディング
- GitPython、および git 実行可能ファイル自体をラップする Python およびその他の言語用の同様のライブラリ
- jgit、git のネイティブ Java 実装
コンテンツに透明な git のようなインターフェイスを提供したい場合は、それが何を意味し、何を提供したいかを慎重に検討する必要があります。Git は DVCS であるため、すべての履歴が保持されます。つまり、人々がリポジトリで何か役に立つことをするためには、履歴全体を保持して提供する必要があります。そのため、一度だけ表示するためにデータをエクスポートしようとしているだけでは、あまり意味がありません。このアプローチは、すべてのバックエンド データを git のバージョン管理下に実際に保存している場合にのみ、最も意味があると思います。
最後に、「git サーバー」自体は存在しないことに注意してください。Git は、データを送受信するために単純な git コマンドを送信できる ssh、http などの既存のトランスポートを利用します。