5

フレームワークのコマンドラインツールのデプロイメントコマンドを書いています。gitを使用してデプロイします。

私はこれを行う行があります:

exec("git push {$remote} {$branch}:{$branch}", $shell_output, $status);

プッシュの出力を内部$shell_outputに入れたいのですが、発生しません(出力はターミナルに表示されるだけです)。git外部プログラムであるため、新しい出力ストリームが作成されるためだと思いますか?

ここで説明する出力バッファを使用してみましたが、役に立ちませんでした。これに答えることができる何かがSOにあると確信していますが、多くの掘り下げの後でそれを見つけることができませんでした。

だからどんな助けでも大歓迎です:)

4

1 に答える 1

10

gitはその出力をSTDOUTではなくSTDERRに送信するため、次のようにリダイレクトする必要があります。

git push REPO --progress 2>&1

またはファイルに:

git push REPO --progress > /path/to/file 2>&1

于 2012-11-15T00:09:11.293 に答える