我的问题很简单,但我没有找到答案。
我想删除git diff
中每行的前导加号/减号。在你问我为什么要这样做之前,请允许我概述一下我的理由:
git
之外)这样做有一些配置选项吗?如果没有,我怎么能以一种仍允许我翻阅我的差异less
- 样式的方式来做到这一点?
非常感谢任何见解。
答案 0 :(得分:64)
我看到的简单方法就是这个......很多容易记住 (文本格式改变。所以你需要知道代码更改)
git diff --color-words
这是一种使其默认的方法
如果您使用的是linux,请将以下命令添加到〜/ .bashrc 文件中
然后您可以使用 gitdiff 无空格作为另一个命令。
alias gitdiff='git diff --color-words'
答案 1 :(得分:24)
一种选择是使用sed
从diff中删除不需要的字符,同时保留颜色:
git diff --color | sed -r "s/^([^-+ ]*)[-+ ]/\\1/" | less -r
(请注意,您需要删除前导空格,因为它是由diff发出的。)
答案 2 :(得分:4)
对于mac用户,您必须使用以下命令:
git diff --color | sed -E "s/^([^-+ ]*)[-+ ]/\\1/" | less -r
caleb531在接受的答案中提供了它,但有一个小错字。
然后,如果您想将其抛在别名中,您可以执行以下操作:
alias gitdiff='git diff --color | sed -E "s/^([^-+ ]*)[-+ ]/\\1/" | less -r'
答案 3 :(得分:3)
如果我可以回答我自己的问题,我最终决定使用名为diff-so-fancy的工具。它不仅剥离了我的差异中的+/-,而且还简化了文件头和突出显示每行内的变化。