我正在使用Windows 7,PowerShell和Posh-Git与Git合作。我有以下别名设置:
ls = log --pretty=tformat:"%C(yellow)%h\\ %C(green)[%ad]%C(cyan)\\ <%cn>\\ %C(reset)%s%C(auto)%d"
问题在于,当我将输出传输到clip.exe以将其复制到剪贴板时,它还会复制一些颜色的字符。一点点阅读,我发现你可以添加&#34; auto,&#34;因此,如果指定了--no-color
选项,它将使用默认颜色。所以现在我有:
ls = log --pretty=tformat:"%C(auto,yellow)%h\\ %C(auto,green)[%ad]%C(auto,cyan)\\ <%cn>\\ %C(auto,reset)%s%C(auto)%d"
我现在遇到的问题是显示refs的输出的最后一位。我将颜色设置为auto,以便git将应用分支和标记的默认颜色,但无法弄清楚如何使其尊重--no-color
选项。如果我将其设置为%C(自动),颜色会一直显示。我尝试了%C(自动,自动),这适用于--no-color
,但没有它git抱怨:
error: invalid color value: auto
fatal: unable to parse --pretty format
答案 0 :(得分:3)
无法弄清楚如何让它尊重
--no-color
选项 如果我将其设置为%C(auto)
,则颜色会一直显示。
这将在git 2.9.x +(2016年第3季度)
中修复 commit b15a3e0见Edward Thomson (ethomson
)(2016年5月27日)
(由Junio C Hamano -- gitster
--合并于commit 1b3d14c,2016年6月20日)
荣誉
format_commit_message
:color=auto
%C(auto)
git-log(1)
在指定%C(auto)
格式时记录 占位符将“在下一个%placeholders
打开自动着色,直到再次切换颜色。”但是,当使用
%C(auto)
时,将实施本实施 无条件地打开颜色(即使关闭了颜色配置) 对于当前上下文 - 例如,指定了--no-color
或者 颜色为auto
,输出不是tty。更新
format_commit_one
以检查格式时的当前上下文 指定了%C(auto)
的字符串,这确保了我们不会 无条件地写颜色。
这使得该行为符合%C(auto,<colorname>)
的行为,并允许用户指定仅在输出为a时才显示颜色 TTY
这是你用git-for-windows 2.9.0看到的。
但是使用更新的2.9.x + git版本,--no-color
确实有效: