Osx
git diff 顯示顏色不正確
為了從所有 git 命令中獲得彩色輸出,我設置了以下內容:
git config --global color.ui true
但是,這會產生這樣的輸出
git diff
,git log
而像
git status
顯示正常的命令為什麼僅在某些命令中無法辨識轉義的顏色程式碼,我該如何解決?
我
xterm-256color
在 OS X 10.8.2 和 zsh 上使用 iTerm 2(終端類型)作為我的外殼zsh --version zsh 5.0.0 (x86_64-apple-darwin12.0.0) git --version git version 1.7.9.6 (Apple Git-31.1)
您會看到轉義序列告訴終端更改顯示為轉義字元的顏色
ESC
,而所需的行為是轉義序列具有預期的效果。預設情況下,諸如
git diff
and之類的命令將git log
其輸出傳送到pager中less
。Git 試圖告訴less
允許控製字元具有控制效果,但這對你不起作用。如果
less
是您的尋呼機,但您將環境變數LESS
設置為不包含-r
or的值,則-R
git 無法判斷less
顯示顏色。它通常會通過LESS=-FRSX
,但如果LESS
已經在環境中設置,則不會。一個修復方法是在 git 呼叫時顯式傳遞-R
選項來告訴顯示顏色:less
git config --global core.pager 'less -R'
如果
less
不是您的尋呼機,請切換到less
或弄清楚如何使您的尋呼機顯示顏色。如果您不希望 git 在呼叫尋呼機時顯示顏色,請設置
color.ui
為auto
而不是true
.