2014-09-30 279 views
0

我正在编写一个脚本,它使用git fetch --all && git fetch --all --tags来获取所有远程的所有分支和标记。将git命令的错误重定向到日志文件

我想要做的是,忽略/不显示提取输出,但如果提取失败,然后执行一些操作(如将错误消息写入日志文件并发送邮件)。我怎样才能忽略正常输出,但如果命令失败,只写入记录文件的错误?

OS:CentOS的6.5

混帐:2.1.0-RC1

谢谢!

更新-1

git-fetch写至标准错误,甚至在成功抓取。所以,如果我做

git fetch a.j 1>success 2>errlog,那么即使在成功取我得到这个错误文件:

从XX.XX.XX.XX:user.name/repo

  • [新枝用于/ lib.base /芯 - > AJ /对/ lib.base /芯

  • [新分支用于/主/ lib.base_core - > AJ /对/主/ lib.base_core

  • [新科]对/主/ memmgr - > AJ /为/主/ memmgr

回答

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文件。

+0

您的解决方案在正常使用情况下工作得非常好。但'git-fetch'发送也在stderr上创建的新分支的列表。所以即使成功读取,上面的命令也会写入error.log。 – 2014-09-30 09:03:50

相关问题