软件版本:

  
操作系统: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格式的更多相关文章

  1. goaccess iis w3c 自定义log 格式参考

    goaccess 支持强大的自定义log 格式,比如我们需要分析iis w3c 格式日志 参考iis w3c 字段 date time s-ip cs-method cs-uri-stem cs-ur ...

  2. git 查看对比的方法log diff

    git shortlog 默认情况下,git shortlog 把输出按作者名字排序,但你可以传入 -n 选项来按每个作者提交数量排序. 1.有冲突时可以用 git status查看 2.通过git ...

  3. Linux编程之定制带级别的log

    我的开发组长曾经说过这么一段话"一个优秀的程序员不在于他写代码有多快,也不在于他能不能实现这个模块的功能,要实现业务实现功能谁不会啊,重要的是他的解决能力,也就说当程序出现错误时你能不能够快 ...

  4. Git删除commit提交的log记录

    基于 GitFlow 工作流,可能某个提交(commit)导致了 bug,或者有多个提交需要返工,此时你就会用到删除提交. 接下来的内容都基于下面这张 git log 提交记录图来写.   git l ...

  5. leveldb - log格式

    log文件在LevelDb中的主要作用是系统故障恢复时,能够保证不会丢失数据.因为在将记录写入内存的Memtable之前,会先写入Log文件,这样即使系统发生故障,Memtable中的数据没有来得及D ...

  6. 多个git合并,并保留log历史记录

    面临的需求是:将多个git仓库作为一个单独目录,整合到一个新的git仓库中:并且保留历史记录. 1. 新建一个summary仓库 新建一个summary仓库,用于整合一系列git仓库. git clo ...

  7. nginx - 反向代理 - 配置文件 header - 日志log格式

    server { listen ; server_name paas.service.consul; client_max_body_size 512m; access_log /data/bkdat ...

  8. git log命令全解析,打log还能这么随心所欲!

    git log命令非常强大而好用,在复杂系统的版本管理中扮演着重要的角色,但默认的git log命令显示出的东西实在太丑,不好好打扮一下根本没法见人,打扮好了用alias命令拍个照片,就正式出道了! ...

  9. 个性化你的Git Log的输出格式

    git已经变成了很多程序员日常工具之一. git log是查看git历史的好工具,不过默认的格式并不是特别的直观. 很多时候想要更简便的输出更多或者更少的信息,这里列出几个git log的format ...

随机推荐

  1. 51nod 1682 中位数计数(差分统计)

    中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平均数作为中位数. 现在有n个数,每个数都是独一无二的,求出每个数在多少个包含其的区间中是中位数. 首先,显 ...

  2. asp.net core 登录身份认证(Cookie)

    asp.net core 2最简单的登录功能 源代码在此 创建asp.net core Web Mvc项目 配置下选项 项目目录结构 在Models文件夹下新建两个实体类 public class T ...

  3. tmp_table_size ---> 优化 MYSQL 经验总结

    数据库连接突然增多到1000的问题 查看了一下,未有LOCK操作语句. 但是明显有好多copy to tmp table的SQL语句,这条语读的时间比较长,且这个表会被加读锁,相关表的update语句 ...

  4. 2017 Multi-University Training Contest - 2

    HDU 6045 #pragma comment(linker, "/STACK:102400000,102400000") #include <cstdio> #in ...

  5. Codeforces 894.C Marco and GCD Sequence

    C. Marco and GCD Sequence time limit per test 1 second memory limit per test 256 megabytes input sta ...

  6. python中如何优雅续行和换行

    http://note.youdao.com/noteshare?id=8dbcb93991a89a6cfcd95580ed2198f0

  7. 使用jvisualvm工具来监控java运行情况

    jvisualvm是jdk自带的工具.所以要先安装jdk   1.jvisualvm工具的路径: 通过which jvisualvm来查看 /usr/local/jdk1.7.0_79/bin/jvi ...

  8. wx.request 获取不到post传递的值

    微信小程序的wx.request请求,method设为POST并向后台传递数据,但从后台返回的信息来看后台并没有获得传递的数据 wx.request({              url: 'url' ...

  9. Rabbitmq--topic

    一.前言 前面讲到direct类型的Exchange路由规则是完全匹配binding key与routing key,但这种严格的匹配方式在很多情况下不能满足实际业务需求.topic类型的Exchan ...

  10. Tensorboard教程:Tensorflow命名空间与计算图可视化

    Tensorflow命名空间与计算图可视化 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 强烈推荐Tensorflow实战Google深度学习框架 实验平台: Tensorflow ...