13

私が取り組んでいるプロジェクトでは、頻繁に変更する特定のデータのリビジョン トラッカーとして git を使用したいと考えています。Web フロントエンドに php を使用しており、使用するには goo php git クライアントが必要です。私はインターネットで一握りに出くわしましたが、それらはすべて同じ制限がある傾向があります...

HTTP はサポートされていません。リモートリポジトリにプッシュ/プルできる必要があります。クローンも必要です。

理想的には、git コマンドを使用しないもの (例: exec() へのラッパー) を探していますが、クラスがうまく機能するかどうかは問題ありません。私が望むことを行うように見える C ライブラリを見てきましたが、php 言語バインディングは不完全であり、http 関数は実験的とラベル付けされています。

誰かがphpを介してgitとhttpを使用することについて何か洞察を持っていますか?

4

3 に答える 3

10

https://github.com/kbjr/Git.php

Git.php は、コマンドを実行するproc_open代わりに使用する git 呼び出しのラッパー クラスです。execプッシュ/プル メソッドはありませんが、runカスタム git コマンドを実行するための一般的なメソッドがあるため、次のように使用できます。

$repo = Git::open('/path/to/repo');
$repo->run('push origin master');

また、クローンを作成するためのメソッドも備えています (clone_toローカルclone_fromクローン作成とclone_remoteリモート クローン作成を行うメソッドもあります)。

于 2012-02-17T05:30:57.423 に答える
0

これは有望に見えます: http://gitphp.org (壊れたリンク;アーカイブされたバージョンを参照してください)

私はそれがあなたのためにそれをするだろうと思います. その説明は次のとおりです。

GitPHP は、git リポジトリの Web フロントエンドです。標準の gitweb の外観をエミュレートしますが、PHP で記述されており、カスタマイズのために Smarty テンプレートを使用します。GeSHi PHP クラスとプロジェクト カテゴリのサポートによる構文の強調表示など、いくつかの追加機能があります。Windows では、標準の git と msysgit で動作します。

セットアップは非常に簡単です。インストールしたい場所に tarball を抽出し、config/gitphp.conf.php.example を config/gitphp.conf.php にコピーし、conf の projectroot を設定して、裸の git リポジトリがあり、templates_c ディレクトリがまだない場合は、Web サーバーが書き込み可能にします。config/gitphp.conf.defaults.php で利用可能なすべてのオプションとデフォルトを確認し、デフォルトを上書きしたい場合はオプションを設定ファイルにコピーできます。プロジェクトのカテゴリを定義したり、テキスト ファイルからプロジェクトをロードしたりするなど、プロジェクトをより高度に制御したい場合は、config/projects.conf.php.example を config/projects.conf.php にコピーして編集することもできます。より詳細な手順は、付属の README に記載されています。

注: 既存の gitphp.conf.php をアップグレードする場合は上書きされませんが、gitphp.conf.defaults.php をチェックして、追加された可能性のある新しい構成オプションを確認することをお勧めします。

このサイトで実行されているライブ コピーを表示できます。

于 2012-02-14T22:01:02.693 に答える