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 ...
随机推荐
- BZOJ4033:[HAOI2015]树上染色——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4033 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将 ...
- 洛谷 P4027 [NOI2007]货币兑换 解题报告
P4027 [NOI2007]货币兑换 题目描述 小 \(Y\) 最近在一家金券交易所工作.该金券交易所只发行交易两种金券:\(A\) 纪念券(以下简称 \(A\) 券)和 \(B\) 纪念券(以下简 ...
- 【乱搞】【CF1095E】 Almost Regular Bracket Sequence
Description 给定一个长度为 \(n\) 的小括号序列,求有多少个位置满足将这个位置的括号方向反过来后使得新序列是一个合法的括号序列.即在任意一个位置前缀左括号的个数不少于前缀右括号的个数, ...
- jsonP 后台写法 及 层级树型数据递归查询
Controller层: package com.taotao.rest.controller; import org.springframework.beans.factory.annotation ...
- Codeforces 395 D.Pair of Numbers
D. Pair of Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- 洛谷P2253 好一个一中腰鼓!
题目背景 话说我大一中的运动会就要来了,据本班同学剧透(其实早就知道了),我萌萌的初二年将要表演腰鼓[喷],这个无厘头的题目便由此而来. Ivan乱入:“忽一人大呼:‘好一个安塞腰鼓!’满座寂然,无敢 ...
- CSUST 四月选拔赛个人题解
这场比赛演的逼真,感谢队友不杀之恩 总结:卡题了赶紧换,手上捏着的题尽快上机解决 http://csustacm.com:4803/ 1113~1122 1113:六学家 题意:找出满足ai+aj=a ...
- 【题解】【LibreOJ Round #6】花团 LOJ 534 时间线段树分治 背包
Prelude 题目链接:萌萌哒传送门(/≧▽≦)/ Solution 如果完全离线的话,可以直接用时间线段树分治来做,复杂度\(O(qv \log q)\). 现在在线了怎么办呢? 这其实是个假在线 ...
- 0-如何正确使用 Django的User Model
本篇主要讨论一下User Model的使用技巧. 注意, 由于Django 1.5之后user model带来了很大的变化, 本篇内容只针对django 1.5之后的版本. 1. 确定 User Mo ...
- Elasticsearch Java API 配置测试
Elasticsearch1.X,2.X,5.X随着版本的迭代,除了系统升级,Java API也做了相对较大的调整,也就是说,1.X的API在2.X以及5.X乃至未来6.X版本都不是通用的. 本例子使 ...