git命令的输出未完全重定向到文件

时间:2016-06-12 07:00:12

标签: git redirect

git fetch命令的输出从以下cmd重定向到“test1”文件:

manish@rigved:~$ git fetch --all --prune > test1
From https://github.com/Beawel/wwwnew
 x [deleted]         (none)     -> origin/test

问题:但输出中显示的“x [deleted] ...”行未重定向到test1,为什么?请建议。

为什么git命令会在stderr上打印 not 错误消息?

manish@rigved:~$ cat test1
Fetching origin

1 个答案:

答案 0 :(得分:3)

除了stdout之外,还需要重定向stderr。

git fetch --all --prune > test1 2>&1

更重要的是,为什么 git命令会在stderr而不是stdout上发出信息?
这是特定于git(并且不是是有充分记录的stderr重定向的副本)。

正如我explained here

  

这与Git中其他进展报告一致   将stdout的输出重新发送到stderr,因为它只是信息性消息,不会被机器消耗。

你会发现stdout git命令输出可能被链式管道序列中的其他命令使用。
任何其他消息(不应由其他命令使用)将重定向到stderr。