git-定制属于你的log格式
软件版本:
操作系统:ubuntu10.04
内核版本:Linux version 2.6.32-36-generic
git 版本:git version 1.7.0.4
1. 查看提交历史
命令:git
log
2. 选项 --pretty[=<format>]
1)介绍
除了默认格式查看提交历史以外,还可以通过
--pretty[=<format>] 或者
--format[=<format>]
制定输出格式。<format> 可以是 noeline, short,
medium, full, fuller, email, raw, format: 中的一个,他们各自的输出格式可以参考 git
log --help 或者(3)。接下来我们主要是讨论 format: 的使用方法。
2)定制提交格式 --pretty=format:
--pretty=format:"format" 的用法就想 printf 的用法一样,只是换行从 \n 变为 %n
。下面列出一些常用的占位符,分别来自于(1)和(2),更详细请参考(3)或者 git
log --help。
选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%_ae 作者的电子邮件地址
(由于新浪博客显示问题,请去除%_ae 中的 _ )%_ad 作者修订日期(可以用 -date= 选项定制格式)(由于新浪博客显示问题,请去除% ad 中的 _ )%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%_ce 提交者的电子邮件地址(由于新浪博客显示问题,请去除%_ce 中的 _ )%_cd 提交日期
(由于新浪博客显示问题,请去除%_cd 中的 _ )%cr 提交日期,按多久以前的方式显示%d: ref名称
%s: 提交的信息标题
%b: 提交的信息内容
%Cred: 切换到红色
%Cgreen: 切换到绿色
%_Cblue: 切换到蓝色
(由于新浪博客显示问题,请去除%_Cblue 中的 _)
%Creset: 重设颜色
%C(...): 制定颜色, as described in color.branch.* config option
%n: 换行 注意:作者(author)_和_提交者(committer)_之间究竟有何差别,其实作者指的是实际作出修改的人,提交者指的是最后将此工作成果提交到仓库的人。所以,当你为某个项目发布补丁,然后某个核心成员将你的补丁并入项目时,你就是作者,而那个核心成员就是提交者。引用来自(1)。
例如,我们只需要输出完成的哈希值以及提交的信息标题,就可以使用命令: $git log --pretty=format:"%H %n %s" 38896a27dc8ab4f47883bd67d300f6145f0478b7
commit write 2
7d3e94cf22b17f7d097479ae8d9367e42509bb3f
Initial commit 3)定制专属于你的 log 格式
根据上面的说明,我们可以定制属于自己 log 格式: $git config --global alias.lg "log --graph --pretty=format:'%Cred%H%Creset @%C(yellow)%d%Creset %n Author: %cn <%_ce> %n Date: %_cd %_Cblue(%cr)%Creset %n %n Commit subject: %Cgreen%s%Creset %n'"
注:命令中 %_ce、%_cd、%_Cblue 分别去除其下划线 _ 。
$git lg * 38896a27dc8ab4f47883bd67d300f6145f0478b7 @ (HEAD, master)
| Author: Eddy <xxx@xxx.com>
| Date: Thu Feb 2 17:06:06 2012 +0800 (8 days ago)
|
| Commit subject: commit write 2
|
* 7d3e94cf22b17f7d097479ae8d9367e42509bb3f @
Author: Eddy <xxx@xxx.com>
Date: Thu Feb 2 17:05:00 2012 +0800 (8 days ago)
Commit subject: Initial commit 4)其它选项
git log 支持的选项有很多,详细请参考 git log --help ,常用的有(引用(1)中的表2-2):选项 说明参考资料:
-p 按补丁格式显示每个更新之间的差异。
--stat 显示每次更新的文件修改统计信息。
--shortstat 只显示 --stat 中最后的行数修改添加移除统计。
--name-only 仅在提交信息后显示已修改的文件清单。
--name-status 显示新增、修改、删除的文件清单。
--abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
--relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。
--graph 显示 ASCII 图形表示的分支合并历史。
--pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。
(1) http://progit.org/book/zh/ch2-3.html
(2) http://ruby-china.org/topics/939
(3) http://linux.die.net/man/1/git-show
git-定制属于你的log格式的更多相关文章
- goaccess iis w3c 自定义log 格式参考
goaccess 支持强大的自定义log 格式,比如我们需要分析iis w3c 格式日志 参考iis w3c 字段 date time s-ip cs-method cs-uri-stem cs-ur ...
- git 查看对比的方法log diff
git shortlog 默认情况下,git shortlog 把输出按作者名字排序,但你可以传入 -n 选项来按每个作者提交数量排序. 1.有冲突时可以用 git status查看 2.通过git ...
- Linux编程之定制带级别的log
我的开发组长曾经说过这么一段话"一个优秀的程序员不在于他写代码有多快,也不在于他能不能实现这个模块的功能,要实现业务实现功能谁不会啊,重要的是他的解决能力,也就说当程序出现错误时你能不能够快 ...
- Git删除commit提交的log记录
基于 GitFlow 工作流,可能某个提交(commit)导致了 bug,或者有多个提交需要返工,此时你就会用到删除提交. 接下来的内容都基于下面这张 git log 提交记录图来写. git l ...
- leveldb - log格式
log文件在LevelDb中的主要作用是系统故障恢复时,能够保证不会丢失数据.因为在将记录写入内存的Memtable之前,会先写入Log文件,这样即使系统发生故障,Memtable中的数据没有来得及D ...
- 多个git合并,并保留log历史记录
面临的需求是:将多个git仓库作为一个单独目录,整合到一个新的git仓库中:并且保留历史记录. 1. 新建一个summary仓库 新建一个summary仓库,用于整合一系列git仓库. git clo ...
- nginx - 反向代理 - 配置文件 header - 日志log格式
server { listen ; server_name paas.service.consul; client_max_body_size 512m; access_log /data/bkdat ...
- git log命令全解析,打log还能这么随心所欲!
git log命令非常强大而好用,在复杂系统的版本管理中扮演着重要的角色,但默认的git log命令显示出的东西实在太丑,不好好打扮一下根本没法见人,打扮好了用alias命令拍个照片,就正式出道了! ...
- 个性化你的Git Log的输出格式
git已经变成了很多程序员日常工具之一. git log是查看git历史的好工具,不过默认的格式并不是特别的直观. 很多时候想要更简便的输出更多或者更少的信息,这里列出几个git log的format ...
随机推荐
- compareTo 返回为整数 调用者比参数大;返回负数 调用者比参数小
compareTo 返回为整数 调用者比参数大;返回负数 调用者比参数小
- BZOJ3637 Query on a tree VI(树链剖分+线段树)
考虑对于每一个点维护子树内与其连通的点的信息.为了换色需要,记录每个点黑白两种情况下子树内连通块的大小. 查询时,找到深度最浅的同色祖先即可,这可以比较简单的树剖+线段树乱搞一下(似乎就是qtree3 ...
- P1054 等价表达式
题目描述 明明进了中学之后,学到了代数表达式.有一天,他碰到一个很麻烦的选择题.这个题目的题干中首先给出了一个代数表达式,然后列出了若干选项,每个选项也是一个代数表达式,题目的要求是判断选项中哪些代数 ...
- [51nod1847]奇怪的数学题
description 51nod 求\[\sum_{i=1}^{n}\sum_{j=1}^{n}sgcd(i,j)^k\]其中\(sgcd(i,j)\)表示\(i,j\)的次大公约数,如果\(gcd ...
- codeforces765F Souvenirs
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- LOJ #6035.「雅礼集训 2017 Day4」洗衣服 贪心
这道题的贪心好迷啊~我们对于两个过程进行单独贪心,然后再翻转一个,把这两个拼起来.先说一下单独贪心,单独贪心的话就是用一个堆,每次取出最小的,并且把这个最小的加上他单次的,再放进去.这样,我们得到的结 ...
- Linux用户创建及权限管理
作业一: 1,新建用户natasha,uid为1000,gid为555,备注信息为“master” useradd natasha vim /etc/passwd ...
- java8系列
参见地址:https://segmentfault.com/a/1190000012211339
- 安装好dashboard 登录出现错误
验证发生错误.请稍后再试一次. While turning SELinux off certainly does the trick, it is somewhat like using a sled ...
- 手脱PECompact v2.xx
个人认为这个壳对于新手有那么一点点难度,所以用单步和ESP都跑一下,我觉得单步是最最基础的,所以一定要掌握 一.单步 1.PEID查壳 PECompact v2.xx (16 ms) 2.载入OD,除 ...