Git:从 diff 中的行中删除前导 plus/minus
Git: remove leading plus/minus from lines in diff
我的问题很简单,虽然我没能找到答案。
我想删除 git diff
中每行的前导 plus/minus 符号。在你问我为什么要这样做之前,请允许我概述一下我的理由:
- 恰好 80 个字符的行会溢出一个字符,这看起来很尴尬
- 颜色足以让我区分additions/deletions
- 我宁愿将终端的 window 宽度保持在 80 个字符(而不是任意的 81 个字符),以保持与我在终端中所做的其他所有操作(
git
之外)的一致性)
是否有一些配置选项可以执行此操作?如果没有,我怎样才能以一种仍然允许我翻阅我的 diff less
风格的方式来做到这一点?
任何见解将不胜感激。
一种选择是使用 sed
从 diff 中删除不需要的字符,同时保留颜色:
git diff --color | sed -r "s/^([^-+ ]*)[-+ ]/\1/" | less -r
(请注意,您还需要删除前导 space,因为它是由 diff 发出的。)
对于 mac 用户,您必须使用以下命令:
git diff --color | sed -E "s/^([^-+ ]*)[-+ ]/\1/" | less -r
caleb531 在接受的答案中提供了它,但有一个小错字。
然后如果你想把它放在别名中,你可以执行以下操作:
alias gitdiff='git diff --color | sed -E "s/^([^-+ ]*)[-+ ]/\1/" | less -r'
我见过的最简单的方法就是这个..很多好记
(文字格式变了。所以你需要知道代码的变化)
git diff --color-words
这是一种使其成为默认值的方法
如果您使用 linux 将以下命令添加到您的 ~/.bashrc 文件
然后你可以使用 gitdiff 没有 space 作为另一个命令。
alias gitdiff='git diff --color-words'
更新:
直接通过 git 配置设置别名(无需借助 ~/.bashrc)
https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases
谢谢@dylankb。
示例:
如果输入命令 git config --global alias.ci commit
;
那么你可以 git ci
为你的余生做出贡献!!
Gitting 快乐 :)
如果我可以回答我自己的问题,我最终决定使用一个名为 diff-so-fancy 的工具。它不仅从我的差异中去除了 +/-,而且还简化了文件头 和 突出了每一行中的变化。
我的问题很简单,虽然我没能找到答案。
我想删除 git diff
中每行的前导 plus/minus 符号。在你问我为什么要这样做之前,请允许我概述一下我的理由:
- 恰好 80 个字符的行会溢出一个字符,这看起来很尴尬
- 颜色足以让我区分additions/deletions
- 我宁愿将终端的 window 宽度保持在 80 个字符(而不是任意的 81 个字符),以保持与我在终端中所做的其他所有操作(
git
之外)的一致性)
是否有一些配置选项可以执行此操作?如果没有,我怎样才能以一种仍然允许我翻阅我的 diff less
风格的方式来做到这一点?
任何见解将不胜感激。
一种选择是使用 sed
从 diff 中删除不需要的字符,同时保留颜色:
git diff --color | sed -r "s/^([^-+ ]*)[-+ ]/\1/" | less -r
(请注意,您还需要删除前导 space,因为它是由 diff 发出的。)
对于 mac 用户,您必须使用以下命令:
git diff --color | sed -E "s/^([^-+ ]*)[-+ ]/\1/" | less -r
caleb531 在接受的答案中提供了它,但有一个小错字。
然后如果你想把它放在别名中,你可以执行以下操作:
alias gitdiff='git diff --color | sed -E "s/^([^-+ ]*)[-+ ]/\1/" | less -r'
我见过的最简单的方法就是这个..很多好记 (文字格式变了。所以你需要知道代码的变化)
git diff --color-words
这是一种使其成为默认值的方法
如果您使用 linux 将以下命令添加到您的 ~/.bashrc 文件
然后你可以使用 gitdiff 没有 space 作为另一个命令。
alias gitdiff='git diff --color-words'
更新:
直接通过 git 配置设置别名(无需借助 ~/.bashrc)
https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases
谢谢@dylankb。
示例:
如果输入命令 git config --global alias.ci commit
;
那么你可以 git ci
为你的余生做出贡献!!
Gitting 快乐 :)
如果我可以回答我自己的问题,我最终决定使用一个名为 diff-so-fancy 的工具。它不仅从我的差异中去除了 +/-,而且还简化了文件头 和 突出了每一行中的变化。