感谢支持
我们一直在努力

让Git 多种颜色和自定义log格式输出

Git多颜色输出

Git默认的输出是单一颜色的,不仅不够美观,也不容易阅读。实际上,Git本身就支持用多种颜色来显示其输出的信息,只需在命令行中运行以下命令来修改git的设置,即可开启多颜色输出:

git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto

执行以上命令后,git的status, diff和branch等诸命令的输出就都是带有颜色的了。见下图示例。

git-status

自定义log格式

完成上述步骤后,git log 命令的输出虽然有了点颜色,但还是显得枯燥(见下图)。

git-default-output

不要紧,强大的git提供了自定义log格式的功能,尝试输入以下命令:

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

你将看到类似下图的输出:

git-pretty-log

怎么样,不赖吧?不过,每次查看log都输出这么一长串的命令,实在是不太现实。咱们来通过git的命令别名来解决这个问题。输入以下命令:

git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'"

上述命令将创建一个命令别名 lg,每次你使用命令 git lg 就相当于输入了刚才那一长串命令。现在,如果想看美观的多颜色输出,就使用 git lg,如果想看普通的log输出,就使用 git log,二者互不干扰。

如果你想让log输出某些特定的信息,可以自己调整 --pretty 参数的值,例如下面的命令将只显示commit的hash,提交时间,提交者姓名:

git log --pretty=format:'%h %ar %an'

把format后面单引号中的内容替换为你想要的格式,即可实现自定义的log输出格式。这里的%h, %ar等是一些git预定义的占位符,完整的列表如下:

%H commit hash
%h commit的短hash
%T tree hash
%t tree的短hash
%P parent hashes
%p parent的短hashes
%an 作者名字
%aN mailmap中对应的作者名字 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
%ae 作者邮箱
%aE 作者邮箱 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
%ad 日期 (–date= 制定的格式)
%aD 日期, RFC2822格式
%ar 日期, 相对格式(1 day ago)
%at 日期, UNIX timestamp
%ai 日期, ISO 8601 格式
%cn 提交者名字
%cN 提交者名字 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
%ce 提交者 email
%cE 提交者 email (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1))
%cd 提交日期 (–date= 制定的格式)
%cD 提交日期, RFC2822格式
%cr 提交日期, 相对格式(1 day ago)
%ct 提交日期, UNIX timestamp
%ci 提交日期, ISO 8601 格式
%d ref名称
%e encoding
%s commit信息标题
%f 过滤commit信息的标题使之可以作为文件名
%b commit信息内容
%N commit notes
%gD reflog selector, e.g., refs/stash@{1}
%gd shortened reflog selector, e.g., stash@{1}
%gs reflog subject
%Cred 切换到红色
%Cgreen 切换到绿色
%Cblue 切换到蓝色
%Creset 重设颜色
%C(…) 制定颜色, as described in color.branch.* config option
%m left, right or boundary mark
%n 换行
%% a raw %
%x00 print a byte from a hex code
%w([<w>[,<i1>[,<i2>]]])

Ubuntu完美安装搭建Git服务器  http://www.linuxidc.com/Linux/2015-07/120616.htm

GitHub 教程系列文章: 

GitHub 使用教程图文详解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm 

Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm 

Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm 

Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm 

Git 服务器搭建与客户端安装  http://www.linuxidc.com/Linux/2014-05/101830.htm 

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm 

分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm 

Ubuntu下Git服务器的搭建与使用指南  http://www.linuxidc.com/Linux/2015-07/120617.htm

Git 的详细介绍:请点这里
Git 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-08/120995.htm

赞(0) 打赏
转载请注明出处:服务器评测 » 让Git 多种颜色和自定义log格式输出
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏