如何在diff中抑制转义序列的显示

时间:2014-08-15 19:04:05

标签: git

当我运行git diff以查看修改后的文件中的更改时,diff会显示许多突出显示的转义序列。例如:

ESC[1mindex a7671ab..c228e2c 100644ESC[m
ESC[1m--- a/core/bp-nav-horizontal.phpESC[m
ESC[1m+++ b/core/bp-nav-horizontal.phpESC[m
ESC[36m@@ -77,7 +77,7 @@ESC[m
 <!-- Contact Us -->ESC[m
   <ul>ESC[m
       <li>ESC[m

如何抑制这些ESC[xxx个字符。他们很难阅读文本。

2014年8月15日修订

这不是关于git diff的。 git log的显示也显示ESC...个字符。这似乎是一个配置问题,但我不知道它在哪里。我应该在哪里看?

4 个答案:

答案 0 :(得分:8)

问题在于GIT用来打印差异和日志的寻呼机。将-R添加到配置中以减少我的问题。我用了

git config --global core.pager "less -R"

答案 1 :(得分:4)

您可能设置了color.ui = always(或auto并且终端检测不起作用)。您可以使用never将其关闭(如果是always先尝试auto)。

您可以使用config.ui配置所有命令,或使用color.diff配置针对git-diff的所有命令。

git config --global color.ui never

使用

git config --local -l
git config --global -l
git config --system -l

列出项目,用户和机器的当前设置。要临时打开/关闭它,您可以在每个命令中使用--color=always参数。例如:

git log --color=never

另请参阅:http://git-scm.com/book/en/Customizing-Git-Git-Configuration

答案 2 :(得分:0)

Git 2.14.x / 2.15(2017年第3季度)将最终尊重git config color.ui never

请参阅commit 11b087acommit 18fb7ffcommit d75dfb1commit d8b6868commit 136c8c8commit ab7ded3commit 29ef53c,{{3} },commit aa8a5d1commit 18a2565commit bf285aecommit 4a68e36commit 51331aacommit 097b681commit 5d3d068(2017年7月13日){ {3}}。
(由commit 2eda010合并于Jeff King (peff),2017年8月11日)

  

“漂亮的打印格式中的”%C(color name)“始终生成ANSI   颜色转义码,这是一个早期的设计错误   他们现在尊重配置(例如“color.ui = never”)和tty-ness   输出媒体。

答案 3 :(得分:0)

我在默认情况下未安装“较少”的系统上。

我使用:

  • git config --global core.pager“ / usr / bin / more -v”

您还可以选择:

  • git config --system core.pager“ / usr / bin / more -v”

关键是它不是'git',而是您使用的寻呼机的(默认)配置。