2015-09-21 16 views
7

git cloneはSTDERRを使用していました。gitクローンはsderrに書き込みますが、なぜstdoutにリダイレクトできないのですか

これを使用するには、これをSTDOUTにリダイレクトしたいと考えています。hack

私はいくつかの問題を抱えています(また、私はSTDERRを自動的に着色するためにstderredライブラリを使用しています)。

添付画像の問題を見ることができますが、私にはあまり意味がありません...どうしてこれが起こっているのか、すべての出力をSTDERRに取得する方法を明確にしてteeを正しく使用できるようにしてください。多くのUnixユーティリティと同様

enter image description here

+0

[git stderr出力はパイプできません](http://stackoverflow.com/questions/4062862/git-stderr-output-cant-pipe) – kenorb

答えて

8

それがパイプにリダイレクトされます場合は、git-cloneは静かになります。出力は人間にとって有用であり、プログラムの途中で取得することが前提です。 teeはこの前提を破りますが、gitはパイプの最後に何があるのか​​分かりません。 git-clone manualから

... -q指定されていない限り、それは、端末に装着されたときに

--progress

進捗状況は、デフォルトで標準エラーストリームで報告されます。このフラグは、標準エラーストリームが端末に向けられていなくても進行状況を強制します。

フル出力を強制するには、git clone --progressを指定する必要があります。

+0

ありがとう...このユースケースを修正しましたが、後で私は 'git push'もSTDERRや' wget'などにも書き出していることに気付きました。目的は何ですか、取得しないでください...私は 'stderred'をインストールしましたが、出力が多すぎます:/ – davidhq

+0

@DavidKrmpoticこれらのユーティリティは、STDERRとSTDOUTを使用して、人間が興味を持っている内容(進行状況)と、プログラムが興味を持っている内容(転送されたもの...)を区別します。彼らはいくつかの仮定をしなければならない。それは[stderrd'](https://github.com/sickill/stderred)はすばらしく見える。 'STDERRED_BLACKLIST'で好きなのなら、gitとwgetをブラックリストにすることができます。 **または**通常のテキストを緑色にし、クリスマステーマの端末をお楽しみください! – Schwern

+0

私はBLACKLISTオプションに気が付かなかった...とにかく、あまりにも面倒で、私は 'stderrd'を使用するのをやめただけで、多くのツールをブラックリストに載せなければならないという合併症になってしまった。再度メインの質問、本当に助けた – davidhq

関連する問題