Git:从diff中的行中删除前导加号/减号
我的问题很简单,尽管我没有找到答案 我想删除Git:从diff中的行中删除前导加号/减号,git,git-diff,Git,Git Diff,我的问题很简单,尽管我没有找到答案 我想删除git diff中每一行的前导加号/减号。在你问我为什么要这样做之前,请允许我概述一下我的理由: 正好是80个字符的行将被单个字符溢出,这看起来很尴尬 颜色足以让我区分添加/删除 我希望将终端的窗口宽度保持在80个字符(而不是任意的81个字符),以保持与我在终端中执行的所有操作的一致性(在git之外) 是否有一些配置选项可以执行此操作?如果没有,我如何才能做到这一点,仍然允许我通过我的diffless-风格页面 任何细节都将不胜感激。一个选项是使用se
git diff
中每一行的前导加号/减号。在你问我为什么要这样做之前,请允许我概述一下我的理由:
less
-风格页面
任何细节都将不胜感激。一个选项是使用
sed
从diff中删除不需要的字符,同时保留颜色:
git diff --color | sed -r "s/^([^-+ ]*)[-+ ]/\\1/" | less -r
(请注意,您还需要删除前导空格,因为它是由diff发出的。)对于mac用户,您必须使用以下命令:
git diff--color | sed-E“s/^([^-+]*)[-+]/\\1/“| less-r
在接受的答案中提供,但有一个小的拼写错误
然后,如果要在别名中加入此选项,可以执行以下操作:
别名gitdiff='gitdiff--color | sed-E“s/^([^-+]*)[-+]/\\1/“| less-r'
我看到的简单方法是。。非常容易记住
(文本格式更改。因此您需要知道代码更改)
git diff——颜色词
下面是一种使其成为默认值的方法
如果您正在使用linux,请将以下命令添加到~/.bashrc文件
然后,您可以使用不带空格的gitdiff作为另一个命令
alias gitdiff='git diff --color-words'
更新:
通过git config直接设置别名(无需~/.bashrc的帮助)
谢谢@dylankb的支持。
示例: 如果输入命令
git config--global alias.ci commit
然后,您可以在余生中使用
git ci
进行提交
Happy Gitting:)如果我可以回答我自己的问题,我最终决定使用一个名为的工具。它不仅从我的差异中去除+/-,而且还简化了文件头并突出显示了每行中的更改
+/-只是不同的工作方式。如果你不想要+/-,你可能需要使用不同的diff工具。@Dave:有些系统只有一个终端(不在图形外壳中运行)-比如
tty
-在这些终端中无法调整大小,因为它们有一个固定的光栅…我还想知道如何禁用前导加号/减号。因为它确实阻止我从diff视图复制粘贴代码。有好几次,我真的只需要复制被更改的代码(恢复一些旧代码),而如果不在之后进行搜索和替换,您就无法使用diff工具完成这项工作。这对我来说很有用,尽管我需要将sed-r
更改为sed-E`(我正在运行OS X,所以我认为这是某种与平台相关的怪癖)。无论如何,这个解决方案可以很好地作为git别名工作,非常感谢:)我的.profile中有一个别名:alias nm='sed-r“s/^([^-+]*)[-+]/\\1/”,我还做了:git config alias.df='diff--color',现在我可以做:git diff[我想要的任何参数]| nm,去除所有的优缺点,保留颜色。(“nm”代表“无减号”)此选项优于--颜色词
,因为它将更改保留在单独的行中。有些用户不希望将发生在同一行上的更改连接起来。这会在保留换行符的同时删除加号和减号。下面使用git diff--color words
的答案更适合我,即使更改可以压缩到一行中。是否有办法将其设为默认值?如果使用linux,请将括号内的命令添加到~/.bashrc文件中(别名gitdiff='gitdiff--color words')。然后您可以使用gitdiff而不使用空格作为另一个命令。这对我来说不仅仅是删除+/-。不幸的是,这也会将一些添加/删除放在同一行上。@ioquatix您还可以使用git config-既可以使用git config
cli,也可以使用~/.gitconfig
文件。如果您使用git config,可能不会让它成为一种罪恶您可以使用bash别名或覆盖diff
,但通过在[alias]中设置d=diff--color
,您肯定可以创建类似git d
的简短内容
在~/.gitconfig中。以下是cli.Woops的文档,我的意思是d=diff--color words
不错的选择。我还建议在包装可能很麻烦的情况下使用less-s
。只是不要认为这就保证了它自己的答案。