1

PHPファイルから取得しようとしgit pullていますが、構成が使用されていないようです。

git config --global user.namegit config --global user.emailが設定されており、コマンド ラインから git pull が機能します。

このスクリプトを実行しようとすると、次のようになります。

<?php

header('Content-type: text/plain');
system('git pull 2>&1');
echo "\nCompleted!";

次の出力が得られます。

どなたか教えてください。

走る

git config --global user.email "you@example.com" git config --global user.name "あなたの名前"

アカウントのデフォルト ID を設定します。--global を省略して、このリポジトリでのみ ID を設定します。

致命的: 空の ID は許可されていません

完成!

git configユーザー固有であり、PHP が別のユーザーから実行されているためでしょうか?

4

4 に答える 4

2

-cgit 自体でフラグを使用するだけです。

-c <name>=<value>
Pass a configuration parameter to the command. The value given will override values from configuration files. The <name> is expected in the same format
as listed by git config (subkeys separated by dots).

次のようなものです:

git -c user.name=apache pull

そこに着くはずです。必要な引数を追加します。特定のファイルを指定する場合は、スクリプトを実行するユーザーに関連する構成オプションを追加するか、最初に別の環境変数をエクスポートしてハックします。HOME

于 2012-08-08T12:56:22.857 に答える
0

私はなんとかそれを機能させましたが、それは理想的な解決策ではありません。git config毎回ではなく、一度 apache ユーザーに設定する方法を見つける必要があります。私は共有ホストにいるので、実際に可能かどうかはわかりません。

<?php

header('Content-type: text/plain');
system('git config user.name "Server"');
system('git config user.email "deploy@server.com"');
system('git pull 2>&1');
echo "\nCompleted!";
于 2012-08-08T12:12:28.533 に答える
0

少し面倒ですが、システムの git config を設定することもできます。

git config --system user.name <user>
git config --system user.email <user>@<domain>

これには、サーバーのすべてのユーザーのデフォルト設定になるという残念な副作用があるため、実際にはあまり良くありません。

于 2015-05-28T23:07:34.200 に答える
0

ログインしていなくても、Web サーバーが動作することを期待していませんか? これは、あなたとは別のユーザーによって実行されていることを意味します (特に指定しない限り)。CLI 経由でスクリプトを実行しない限り、スクリプトは apache、www-data、または構成したユーザーによって実行されます。

于 2012-08-08T11:57:46.240 に答える