How to show space and tabs with git-diff

倾然丶 夕夏残阳落幕 提交于 2019-12-17 23:16:07

问题


I have the following output with git-diff.

- // sort list based on value    
+ // sort list based on value

How can I see easily see the number of removed tabs/spaces at the end of the line ?


回答1:


Note: Git 2.5+ (Q2 2015) will propose a more specific option for whitespace detection.

See commits 0e383e1, 0ad782f, and d55ef3e [26 May 2015] by Junio C Hamano (gitster).
(Merged by Junio in commit 709cd91, 11 Jun 2015)

diff.c: --ws-error-highlight=<kind> option

Traditionally, we only cared about whitespace breakages introduced in new lines.
Some people want to paint whitespace breakages on old lines, too. When they see a whitespace breakage on a new line, they can spot the same kind of whitespace breakage on the corresponding old line and want to say "Ah, those breakages are there but they were inherited from the original, so let's not touch them for now."

Introduce --ws-error-highlight=<kind> option, that lets them pass a comma separated list of old, new, and context to specify what lines to highlight whitespace errors on.

The documentation now includes:

--ws-error-highlight=<kind>

Highlight whitespace errors on lines specified by <kind> in the color specified by color.diff.whitespace.
<kind> is a comma separated list of old, new, context.
When this option is not given, only whitespace errors in new lines are highlighted.

E.g. --ws-error-highlight=new,old highlights whitespace errors on both deleted and added lines.
all can be used as a short-hand for old,new,context.

For instance, the old commit had one whitespace error (bbb), but you can focus on the new errors only:

(test done after t/t4015-diff-whitespace.sh)


Update Git 2.11+ (Q4 2016, a year and half later) :

git config diff.wsErrorHighlight [old,new,context]

git diff/log --ws-error-highlight=<kind> lacked the corresponding configuration variable to set it by default. That is added in Git 2.11.

See commit 0b4b42e, commit 077965f, commit f3f5c7f (04 Oct 2016) by Junio C Hamano (gitster).
(Merged by Junio C Hamano -- gitster -- in commit e5272d3, 26 Oct 2016)




回答2:


I can think of multiple options:

  • Configure Git to use colors: git config --global color.ui true. Whitespace at the end of lines is now highlighted in red.

  • Pipe the output of git diff through cat: git diff | cat -A. The -A flag tells cat to show non-printable characters (e.g. ^I for tab).



来源:https://stackoverflow.com/questions/25550582/how-to-show-space-and-tabs-with-git-diff

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!