1

クライアントがWordpressプラグインまたはコアを更新するたびに、gitコミットを作成してリモートリポジトリにプッシュしようとしています。正しいフィルターに正常にフックされたため、更新が完了したらphpコードを実行でき、コミットを作成することもできますが、リモートにプッシュすることはできません.

次のコードを使用しています。

system ( 'cd '.ABSPATH.'; git add -A;' );
system ( 'cd '.ABSPATH.'; git commit -a -m "Updated plugins via WP";' );
system ( 'cd '.ABSPATH.'; echo `git push`;' );

最初の 2 行はうまく機能します。それらは出力も生成します。ただし、3行目は機能しません。そして、出力は生成されません。レポを確認すると、変更がリモートにプッシュされていません。ターミナル/シェルを介して手動で行うgit pushと、正常にプッシュされ、出力が生成されます。

明らかな何かが欠けているに違いありませんか?

4

5 に答える 5

2

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

Git.phpを使用してgitコマンドを実行してみてください。関数はありませんが、次のような関数pushを使用できます。run

$repo = Git::open(ABSPATH);
$repo->add('-A');
$repo->commit('Updated plugins via WP');
$repo->run('push');
于 2012-10-03T04:22:46.420 に答える
1

個人的には、簡単な bash スクリプトを作成してバッチ git 操作を実行しproc_opensystem. スクリプトの出力を取得したり、エラーや終了コードをチェックしたりするのに適しています。

http://php.net/manual/en/function.proc-open.php

于 2012-10-02T10:09:36.577 に答える
0

最後の行からエコーとバッククォートを削除すると、自分でも使用する可能性が最も高いコードが得られます。

system ( 'cd '.ABSPATH.'; git push ;' );

サーバーが で実行されていない場合、プッシュは失敗することに注意してくださいHEAD。ブランチ名を指定する必要があり、pull前に指定する必要がある場合がありますpush。(プル - コミット - プッシュを使用します。)

于 2012-10-03T04:36:44.833 に答える