メッセージなぜ "git submodule add ..."はstdoutではなくstderrに書き込むのですか?
Cloning into 'sub-mod'...
done.
git submodule add...
コマンドが標準エラーに書き込まれた後。私はメッセージがstdoutに書き込まれることを期待していました。なぜなら、コマンドで何か問題が生じたとは思わないからです。私は、次のコマンドシーケンスでこれを再現することができ
:
rm -rf /tmp/repo /tmp/module
mkdir /tmp/repo /tmp/module
cd /tmp/module
git init > /dev/null
echo "foo" > foo;
git add foo > /dev/null
git commit . -m "+ foo" > /dev/null
cd /tmp/repo
git init > /dev/null
git submodule add /tmp/module/ sub-mod 1> /dev/null
私は... 2> /dev/null
に最後のコマンドでリダイレクトを変更する場合は、何も印刷されません。
驚いたことに、彼らは機械可読出力のためのフラグを追加するとは思わなかった... – aleclarson
@aleclarson機械可読の出力はGitのデフォルトであり、stdoutに行く。他のものは標準エラー出力に行きます。 – VonC
おそらく、私はstderrを乱用するのではなく、 ' - porcelain'フラグを使って' git status'の方法を好むでしょう。しかし、多分それは私だけです。 – aleclarson