0

問題

サーバー上に個人用のマイクロ Github を作成したいのですが、サーバー上の git とエレガントに対話するにはどうすればよいですか? PHP を使用して git-shell にコマンドを送信するのは賢明でしょうexecか? 私は直接gitと話しているでしょうか?アイデアを理解するために、数秒間話しましょう。

どのように機能するか

アイデアは、ユーザーが複数のリポジトリを管理し、リポジトリを参照できるようにする GitHub のようなアプリケーションを作成したいということです。サーバーがgit サーバーになるには、サーバーに git がインストールされている必要があります。そして、前述の GitHub のような機能を可能にするために、データ アクセス レイヤーとして機能する API レイヤーで git をラップする必要があると思います。このようにして、アプリケーションは git を使用して git のことを行うことができ、アプリケーションが有用なことを達成できるようにします。

注意: 言語の選択は PHP に限定されません。exec()この場合の質問を強調するのに役立つ機能のため、私はPHPのみを使用しました。

// Instantiate a git object
$git = new Git();

// Connect to a git server
$result = $git->connect("0.0.0.0","username","password");

// Create a bare repository in the filesystem
$repo = $git->init("name","/home/pwd/user/name.git");

// Clone a repository
$repo->clone("username","host","repository")

// Commit to the repository
$repo->commit($fileset,"message","long message");

質問

問題は次のようになります:Gitオブジェクトと抽象化の下で、サーバー上の git とどのように対話するのでしょうか? PHP を使用して git-shell にコマンドを送信しますexecか? git とエレガントに会話できる別の方法はありますか?

4

0 に答える 0