git で post-receive フックを作成しました。フックはメッセージを画面に出力し、それはプッシュを実行している git クライアントに送り返され、出力されます。
出力のすべての行の前にある「remote:」テキストを削除するにはどうすればよいですか? それはむしろ気を散らすものです。(実際に見たことがあるので、それが可能であることは知っていますが、それがどのように行われるのかわかりません。)
git で post-receive フックを作成しました。フックはメッセージを画面に出力し、それはプッシュを実行している git クライアントに送り返され、出力されます。
出力のすべての行の前にある「remote:」テキストを削除するにはどうすればよいですか? それはむしろ気を散らすものです。(実際に見たことがあるので、それが可能であることは知っていますが、それがどのように行われるのかわかりません。)
注: プレフィックスは、リモート システムからのメッセージをローカル システムからのメッセージと間違えないようにするために重要な場合があります。
つまり、プレフィックスをオフにする方法はありませんが、それらはすべて stderr に書き込まれます。git pushの stderr をリダイレクト/キャプチャ/フィルタリングして、必要なことを行うことができます。
大まかな方法は次のようになります。
git push ... 2>&1 | sed -e 's/^remote: //'
stdout をパイプに送信し、stderr を同じ場所に移動させます。パイプの反対側で、sedremote:
は結合された出力を読み取り、すべてのプレフィックスを削除します。remote:
stdout ストリームにプレフィックスが表示される可能性は低いため、これで問題ありません。このように stdout と stderr を組み合わせることは、インタラクティブな使用には一般に受け入れられます (おそらく同じ tty デバイスに接続されるため) が、自動化されたコンテキスト (スクリプトなど) での使用には適していない可能性があります。