'git diff'能否仅输出长行内的更改?

问题描述

当我在仅由一条很长的一行组成的文件中进行更改时,git diff可以仅输出更改的那部分吗?

我知道git diff --word-diff将仅以颜色突出显示已更改的部分,但仍将输出整行。

是否可以仅输出已更改的行的一部分?还是可能只匹配git diff --word-diff彩色部分的grep模式?

解决方法

是的,请使用git diff --word-diff=porcelain

使用特殊的基于行的格式供脚本使用。 添加/删除/未更改的运行以通常的统一diff格式打印, 在行首以+/-字符开头, 延伸到行尾。输入中的换行符由 一个波浪号〜自己一行。

对长线进行小的更改将类似于...

~
The mouse that the cat that the dog that the 
-man
+person
  frightened and chased ran away
~

否则,您可以搜索[-{+