消息
Cloning into 'sub-mod'...
done.
将git submodule add...
命令写入 stderr 后。我希望将消息写入 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
,则不会打印任何内容。
答案 0 :(得分:1)
这不仅限于子模块,如noted here:
子模块的注册将报告给 stderr,就像那样 与Git中其他进度报告一致。
当我们想要重用时,这有助于我们在以后的补丁中使用
init_submodule
functionupdate_clone
{s}输出标准 以非常特定的方式从stdout读取参数的shell。
您也可以在this recent patch中看到它:
将stdout的输出重新发送到 stderr,因为它只是提供信息 消息,不被机器消费。
我们想从
submodule update
的帮助器初始化子模块 在后来的补丁中,消耗了所述助手的stdout输出 由submodule update
的部分仍然用shell编写。所以我们要小心哪些消息在stdout上。