2011-04-12 193 views

回答

82

git diff --color-words --no-index

+5

從手冊頁:「如果正好有兩個路徑,並給出當前倉庫外的至少一個點,git的差異會比較兩個文件/目錄。這種行爲可以通過--no-index強制。「 (很多時候你甚至不需要'--no-index'。) – Cascabel 2011-04-12 15:59:34

+1

至少在我的git 1.9.3中,順序應該是'git diff --no-index --color-words' – PhML 2014-05-29 13:16:09

+3

In我的'--no-index'和'--color-words'的git v1.9.3順序無關緊要(實際上我現在找不到'--no-index'時失敗了,所有)。 – 2014-05-29 17:32:03

1

你可以說git diff --color=always --color-words,這將給你在輸出色彩轉義碼。你將有一定的外殼雖然解釋顏色代碼...

+0

問題是關於在Git存儲庫之外使用它的問題。當'--color-words = always'而不僅僅是'--color-words'時,它會遺漏一些東西。 – 2011-04-12 15:12:16

+0

@vi:對不起,你只說»outside git«,它沒有提到任何地方的存儲庫。我認爲這是關於在git旁邊的其他應用程序(例如管道)上的顏色 - 這也是»外部git«,意義上»不在默認的git工具鏈/工具集合中« – knittl 2011-04-12 16:09:40

6

據Jefromi評論你可以使用

git diff --color-words file1 file2 

外git代碼庫了。

+5

git diff無法工作如上所述的兩個仲裁文件。 (git版本1.7.4)。 儘管'git diff --color-words --no-index '有效,但正確的方法是使用wdiff,它是爲此目的而設計的(http://www.gnu.org/software/wdiff/ ) – 2012-12-27 05:56:57

+2

@Manu否,'git diff'是爲此目的而設計的。 'wdiff'只是一個黑客。有時閱讀你的鏈接。 – Zenexer 2013-09-17 10:15:06

1

如果我是一個Git倉庫內(GIT v2.3.3):

  • git diff --color-words不工作(不輸出)
  • git diff --no-index不接受--color-words也不--color參數

使用wdiff有可能,配置爲使用顏色,而不是下劃線:

wdiff -n \ 
    -w $'\033[30;31m' -x $'\033[0m' \ 
    -y $'\033[30;32m' -z $'\033[0m' \ 
    … | less -R 

來源:https://www.gnu.org/software/wdiff/manual/html_node/wdiff-Examples.html(修改爲使用前景色而非背景色)

希望它有幫助。

+0

爲什麼'git --no-index --color-words'失敗?我用它(與早期的Git版本雖然)。 – 2015-03-20 14:34:43

1

Git版本1.9.1:

git diff --word-diff=color fileA fileB