2014-09-30 53 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

相關問題