git-log 中的颜色
当您运行 git log --decorate --pretty=oneline 时,输出将包含诸如 (HEAD, refs/published/master, master)
之类的带有颜色的条目。
我的 gitconfig 中还有以下内容:
[color "branch"]
current = yellow reverse
local = yellow
remote = green
在执行如下所示的自定义格式时,如何复制这些颜色?
git log --decorate --stat --graph --pretty=format:"%d %Cgreen%h%Creset (%ar - %Cred%an%Creset), %s%n"
When you run git log --decorate --pretty=oneline
the output will have entries like (HEAD, refs/published/master, master)
with coloration.
I also have the following in my gitconfig:
[color "branch"]
current = yellow reverse
local = yellow
remote = green
How do you replicate those colors when doing a custom format like the following?
git log --decorate --stat --graph --pretty=format:"%d %Cgreen%h%Creset (%ar - %Cred%an%Creset), %s%n"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
从 git 1.8.3(2013 年 5 月 24 日)开始,您可以在
git log< 的格式字符串中使用
%C(auto)
修饰%d
/代码>。来自发行说明:
As of git 1.8.3 (May 24, 2013), you can use
%C(auto)
to decorate%d
in the format string ofgit log
.From the release notes:
git log --decorate
默认情况下:,可以通过
color.decorate
< /strong> 配置。但
git log --format
没有提供一种专门显示HEAD
或 远程 或 分支的方法:所有三个都通过%d
显示,其中一种颜色可能。2013 年 5 月更新,如下文所述,作者:Elad Shahar(已投票),git 1.8.3 提供了另一种选择:
这篇Atlassian 博客文章评论说此功能是其中的一部分 关注格式(
git rebase
、git count-objects
)和颜色(git Branch -vv
)其他几个重点 之前的
自动,重置
1.8.2,当输出不用于终端时自动禁用颜色1注意:git 2.4+(2015 年第 2 季度)将更好地重置分支名称周围的颜色。
请参阅 提交 5ee8758,作者:Junio C Hamano (
gitster
):请注意,git 2.5(2015 年第 2 季度)修复了一个错误:
请参阅 commit 429ad20 ="https://github.com/gitster" rel="noreferrer">Junio C Hamano (
gitster
),2015 年 5 月 13 日。(由 Junio C Hamano --
gitster
-- 合并于 提交 fd70780,2015 年 5 月 22 日)Git 2.9.x+(2016 年第 3 季度)将修复另一个错误并为
%C 荣誉
color=auto
(自动)Git 2.10.2(2016 年 10 月)使用 提交 82b83da(2016 年 9 月 29 日),以及提交 c99ad27(9 月 17 日) 2016),作者:René Scharfe (``)。
(由 Junio C Hamano --
gitster
-- 合并于 提交 76796d4,2016 年 10 月 28 日)The
git log --decorate
will put by default:and can be changed through
color.decorate
config.But the
git log --format
don't offer a way to display specifically theHEAD
or remotes or branch: all three are displayed through%d
, with one color possible.Update May 2013, as mentioned below by Elad Shahar (upvoted), git 1.8.3 offers one more option:
This Atlassian blog post comments that this feature is part of several others focused on format (
git rebase
,git count-objects
) and colors (git branch -vv
)This comes in addition of the previous
auto,reset
of 1.8.2, which automatically disables colors when the output is not used for a terminal1Note: git 2.4+ (Q2 2015) will do a better job of resetting color around branch names.
See commit 5ee8758 by Junio C Hamano (
gitster
):Note that git 2.5 (Q2 2015) fixes a bug:
See commit 429ad20 by Junio C Hamano (
gitster
), 13 May 2015.(Merged by Junio C Hamano --
gitster
-- in commit fd70780, 22 May 2015)Git 2.9.x+ (Q3 2016) will fix another bug and honor
color=auto
for%C(auto)
Git 2.10.2 (Oct. 2016) fixes other bugs with commit 82b83da (29 Sep 2016), and commit c99ad27 (17 Sep 2016) by René Scharfe (``).
(Merged by Junio C Hamano --
gitster
-- in commit 76796d4, 28 Oct 2016)将它们括起来:
因此
%C(黄色反转)
可以工作。(颜色规范文档。)
Parenthesize them:
So
%C(yellow reverse)
would work.(Color specification docs.)
配置选项log.decorate可以启用/禁用日志中的默认装饰。
完成后,您可以使用
color.decorate.*
来调整颜色The config option
log.decorate
can enable/disable default decorations in logs.Once that is done you can use
color.decorate.*
to play with the colors有些人可能想使用这个:
%C(colorname)
这不需要更改颜色配置。
示例:将作者姓名涂成黄色
常规 ANSI 颜色应该有效 https://en .wikipedia.org/wiki/ANSI_escape_code
Some may want to use this :
%C(colorname)
This doesn't need to change the color config.
Example : Coloring the author name in yellow
Regular ANSI colors should work https://en.wikipedia.org/wiki/ANSI_escape_code