当您运行git log --decorate --pretty=oneline输出时,将具有(HEAD, refs/published/master, master)与着色一样的条目.
我的gitconfig中也有以下内容:
[color "branch"]
current = yellow reverse
local = yellow
remote = green
Run Code Online (Sandbox Code Playgroud)
在执行如下自定义格式时,如何复制这些颜色?
git log --decorate --stat --graph --pretty=format:"%d %Cgreen%h%Creset (%ar - %Cred%an%Creset), %s%n"
Run Code Online (Sandbox Code Playgroud)
小智 83
从git 1.8.3(2013年5月24日)开始,您可以使用格式字符串%C(auto)来装饰.%dgit log
从发行说明:
* "git log --format" specifier learned %C(auto) token that tells Git
to use color when interpolating %d (decoration), %h (short commit
object name), etc. for terminal output.)
Run Code Online (Sandbox Code Playgroud)
Von*_*onC 58
该git log --decorate会默认地说:
并可以通过color.decorate配置更改 .
但是git log --format没有提供专门显示HEAD 或遥控器或分支的方式:所有三个都通过显示%d,一种颜色可能.
更新2013年5月,为下文提到的埃拉德·沙哈尔(upvoted),git的1.8.3提供多一个选择:
git log –format现在运行一个%C(auto)令牌,告诉Git在解析%d(装饰),%h(短提交对象名称)等时使用颜色进行终端输出.
这篇Atlassian博客文章评论说,这个功能是其他几个专注于格式(git rebase,git count-objects)和颜色(git branch -vv)的功能的一部分
这是auto,reset1.8.2之前的补充,当输出不用于终端1时,它会自动禁用颜色
%C(auto,blue)Hello%C(auto,reset)
Run Code Online (Sandbox Code Playgroud)
注意:git 2.4 +(2015年第2季度)可以更好地重置分支名称周围的颜色.
见提交5ee8758通过JUNIOÇ滨野(gitster):
log --decorate:不要将"提交"颜色泄漏到下一个项目中在"
git log --decorate"中,您会看到如下的提交标头:
commit ... (HEAD, jc/decorate-leaky-separator-color)
Run Code Online (Sandbox Code Playgroud)
其中"
commit ... ("被画入color.diff.commit,"HEAD"incolor.decorate.head,","incolor.diff.commit,分支名称中color.decorate.branch,然后关闭")"color.diff.commit.如果你想用与正文文本相同的颜色绘制HEAD和本地分支名称(可能因为青色和绿色在黑白终端上太微弱而无法读取),你不想说
[color "decorate"]
head = black
branch = black
Run Code Online (Sandbox Code Playgroud)
因为您无法在黑白终端上重复使用相同的配置.你天真地期待
[color "decorate"]
head = normal
branch = normal
Run Code Online (Sandbox Code Playgroud)
工作,但不幸的是它没有.
它将字符串"HEAD"和分支名称绘制为与装饰元素之间的左括号或逗号相同的颜色.
这是因为代码在以自己的颜色打印"前缀"后忘记重置颜色.
请注意,git 2.5(2015年第2季度)修复了一个错误:
看看提交429ad20通过JUNIOÇ滨野(gitster),2015年5月13日
(通过合并JUNIOÇ滨野- gitster-在提交fd70780 2015,5月22日)
log:不要过早缩短装饰名称
log --decorateGit 2.4中的" "增强功能显示当前分支的提示,例如"HEAD -> master",但是--decorate = full不起作用.
Git的2.9.x +(Q3 2016)将解决另一个bug和荣誉color=auto为%C(auto)
Git 2.10.2(2016年10月)使用提交82b83da(2016年9月29 日)修复了其他错误,并通过RenéScharfe(``)提交了c99ad27(2016年9月17日).
(由Junio C gitsterHamano合并- -在提交76796d4,2016年10月28日)
pretty:%C(auto)如果输出为空,请避免添加重置我们发出一个转义序列来重置颜色和属性,
%C(auto)以确保自动着色按预期显示.
如果输出strbuf是空的,即当%C(auto)出现在格式字符串的开头时停止这样做,因为那样就不需要复位了,我们在输出中保存了几个字节.
pretty:让我们%C(auto)重置所有属性复位颜色和属性时
%C(auto),以使他们在全自动控制; 否则,以前的%C占位符仍然可以生成粗体或反向等属性.
将它们括起来:
%C(...): color specification, as described in color.branch.* config option
那%C(yellow reverse)会工作.
config选项log.decorate可以在日志中启用/禁用默认装饰.
git config --global log.decorate full
Run Code Online (Sandbox Code Playgroud)
完成后,您可以使用color.decorate.*颜色
有些人可能想使用这个: %C(colorname)
这不需要更改颜色配置。
示例:将作者姓名涂成黄色
--pretty=format:"%C(yellow)%an%Creset"
Run Code Online (Sandbox Code Playgroud)
常规的 ANSI 颜色应该可以使用https://en.wikipedia.org/wiki/ANSI_escape_code
| 归档时间: |
|
| 查看次数: |
36878 次 |
| 最近记录: |