2013-01-19 48 views
15

在排除用戶的git問題時,我一直遇到不注意git錯誤/警告消息的人,然後燒他們的手指。有沒有什麼辦法來着色錯誤和警告git輸出?如何變色git錯誤,警告和致命消息?

+1

+1,好問題。大多數人只是不知道如何閱讀。 – fge

+1

什麼操作系統/ git客戶端? – DaveShaw

+0

DaveShaw:在任何操作系統上的常規控制檯git客戶端。 – user1338062

回答

1

您可以使用gitcolor配置部分。

欲瞭解更多信息和示例,請參閱http://git-scm.com/book/en/Customizing-Git-Git-Configuration#Colors-in-Githttp://blog.philippmetzler.com/?p=15

例如第二部分:(添加到您的.gitconfig)

[color] 
    interactive = always 
[color "interactive"] 
    error = red bold 
+0

你試過了嗎?因爲據我所知,這至少不會使錯誤/致命。 – user1338062

+0

我認爲這隻適用於諸如'git add --interactive'之類的東西。 – jszakmeister

5

沒有混帳BUIT式的方式來做到這一點。 Git只是向STDERR輸出錯誤,並不關心錯誤或任何事情的死亡率。你可以做的是顏色STDERR紅色。如何做到這一點已被要求對ServerFault:https://serverfault.com/questions/59262/bash-print-stderr-in-red-color

有三種基本選擇:

  1. 像這樣運行命令:

    *git-command* 2> >(while read line; do echo -e "\e[01;31m$line\e[0m" >&2; done) 
    
  2. 使用一個包裝腳本(見ServeFault對於那些),並運行命令如

    mywrapper *git-command* 
    
  3. 安裝stderred。這將允許您在不修改命令行的情況下使效果永久。不知道這是否會在Windows上工作。

+0

紅色着色'stderr'不適用於我:git在'stderr'中記錄了很多東西,不僅錯誤。標準輸出中會輸出一些錯誤。 –

5

因爲我沒有找到一個合適的辦法顏色的錯誤消息,我的解決辦法是,當混帳返回錯誤代碼添加額外的警告(!= 0)。

要做到這一點,它添加到您的~/.bashrc~/.bash_profile

# Wrap git. On errors, print an additional line in red. 
git(){ 
    command git "[email protected]" 
    local exitCode=$? 
    if [ $exitCode -ne 0 ]; then 
     printf "\033[0;31mERROR: git exited with code $exitCode\033[0m\n" 
     return $exitCode 
    fi 
} 

下面是結果: enter image description here

注意,在紅色標準錯誤着色不能很好地工作,因爲git的日誌很多東西在stderr中,不僅是錯誤。標準輸出中會輸出一些錯誤。