仅将git命令的错误重定向到日志文件

时间:2014-09-30 08:42:48

标签: git logging error-handling git-fetch

我正在编写一个脚本,使用git fetch --all && git fetch --all --tags来获取所有遥控器的所有分支和标签。

我想要做的是,忽略/不显示提取输出,但如果提取失败,则执行某些操作(例如将错误消息写入日志文件并将其邮寄)。如果命令失败,我如何忽略正常输出但只将错误写入日志文件?

操作系统:CentOS 6.5

git:2.1.0-rc1

谢谢!

  

更新-1

即使成功获取,

git-fetch也会写入stderr。所以如果我这样做

git fetch a.j 1>success 2>errlog,即使成功获取,我也会在错误文件中找到它:

来自xx.xx.xx.xx:user.name/repo

  • / lib.base / core的[new branch] - > A.J /对/ lib.base /芯

  • / master / lib.base_core的[new branch] - > A.J /对/主/ lib.base_core

  • / master / memmgr的[new branch] - > A.J /对/主/ memmgr

1 个答案:

答案 0 :(得分:2)

您可以使用Unix stderr描述符2将错误捕获到文件中:

git fetch --all && git fetch --all --tags 1>/dev/null 2>error.log

1>/dev/null是正常的标准输出,而 2>error.log将错误记录到error.log文件。