软件版本:

  
操作系统: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。

  1. 选项 说明

  2. %H   提交对象(commit)的完整哈希字串

  3. %h   提交对象的简短哈希字串

  4. %T   树对象(tree)的完整哈希字串

  5. %t   树对象的简短哈希字串

  6. %P   父对象(parent)的完整哈希字串

  7. %p   父对象的简短哈希字串

  8. %an  作者(author)的名字

  9. %_ae  作者的电子邮件地址
  10. (由于新浪博客显示问题,请去除 %_ae 中的 _
    %_ad  作者修订日期(可以用 -date= 选项定制格式)(由于新浪博客显示问题,请去除 % ad 中的 _
    %ar  作者修订日期,按多久以前的方式显示

  11. %cn  提交者(committer)的名字

  12. %_ce 提交者的电子邮件地址(由于新浪博客显示问题,请去除 %_ce 中的 _
    %_cd  提交日期
  13. (由于新浪博客显示问题,请去除 %_cd 中的 _
    %cr  提交日期,按多久以前的方式显示

  14. %d:  ref名称
  15. %s:  提交的信息标题
  16. %b:  提交的信息内容
  17. %Cred: 切换到红色

  18. %Cgreen: 切换到绿色

  19. %_Cblue: 切换到蓝色
  20. (由于新浪博客显示问题,请去除 %_Cblue 中的 _
  21. %Creset: 重设颜色

  22. %C(...): 制定颜色, as described in color.branch.* config option

  23. %n:  换行
  24.  
  25.     注意:作者(author__提交者(committer_之间究竟有何差别,其实作者指的是实际作出修改的人,提交者指的是最后将此工作成果提交到仓库的人。所以,当你为某个项目发布补丁,然后某个核心成员将你的补丁并入项目时,你就是作者,而那个核心成员就是提交者。引用来自(1)

  26.     例如,我们只需要输出完成的哈希值以及提交的信息标题,就可以使用命令:
  27. $git log --pretty=format:"%H %n %s"
  28. 38896a27dc8ab4f47883bd67d300f6145f0478b7
  29.  commit write 2
  30. 7d3e94cf22b17f7d097479ae8d9367e42509bb3f
  31.  Initial commit
  32. 3)定制专属于你的 log 格式
  33.     根据上面的说明,我们可以定制属于自己 log 格式:
  34.  
  35. $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'"
  36.     注:命令中 %_ce、%_cd、%_Cblue 分别去除其下划线 _
  37. $git lg
  38.  
  39. * 38896a27dc8ab4f47883bd67d300f6145f0478b7 @ (HEAD, master)
  40. |  Author: Eddy <xxx@xxx.com>
  41. |  Date: Thu Feb 2 17:06:06 2012 +0800 (8 days ago)
  42. | 
  43. |  Commit subject: commit write 2
  44. | 
  45. * 7d3e94cf22b17f7d097479ae8d9367e42509bb3f @
  46.    Author: Eddy <xxx@xxx.com>
  47.    Date: Thu Feb 2 17:05:00 2012 +0800 (8 days ago)
  48.   
  49.    Commit subject: Initial commit
  50.  
  51. 4)其它选项
  52.     git log 支持的选项有很多,详细请参考 git log --help ,常用的有(引用1中的表2-2):
  53.  
  54. 选项   说明

  55. -p     按补丁格式显示每个更新之间的差异。

  56. --stat 显示每次更新的文件修改统计信息。

  57. --shortstat 只显示 --stat 中最后的行数修改添加移除统计。

  58. --name-only 仅在提交信息后显示已修改的文件清单。

  59. --name-status 显示新增、修改、删除的文件清单。

  60. --abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。

  61. --relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。

  62. --graph 显示 ASCII 图形表示的分支合并历史。

  63. --pretty 使用其他格式显示历史提交信息。可用的选项包括 onelineshortfullfuller format(后跟指定格式)。
  64. 参考资料:
    (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. js function的方法名是一个变量 能被重复定义 当变量名一致时候 会使用最后一个function

  2. 题解 P1420 【最长连号】

    这个题过去的同学可以再来一题(P1567 统计天数): https://www.luogu.org/problemnew/show/P1567 是的,这个题其实也不是很难,就是前后比较,将天数压栈, ...

  3. 【WebAPI】新手入门WebAPI

    一.前言       工作也有一年多了,从进入公司就一直进行BIM(建筑信息模型)C/S产品的研发,平时写的最多的就是Dev WPF.一个偶然的时机,产品需要做支付宝扫码与微信扫码,所以需要了解产品服 ...

  4. Unity3D for VR 学习(10): Unity LOD Group 组件

    LOD (Level of Detail), 远小近大思想. LOD,在Unity中是用到了空间换时间的优化方法:即程序加载2套模型,导致包会增大:在运行时刻,远处的用面数少的模型–模糊一些,近处用面 ...

  5. 04-树4. Root of AVL Tree-平衡查找树AVL树的实现

    对于一棵普通的二叉查找树而言,在进行多次的插入或删除后,容易让树失去平衡,导致树的深度不是O(logN),而接近O(N),这样将大大减少对树的查找效率.一种解决办法就是要有一个称为平衡的附加的结构条件 ...

  6. hdu 2608 (数论)

    hdu2608  0 or 1 题意:给你一个数N(N < 2^31), 问从 1--N 所有数的因子和S(N),求 S(N)%2 的值. 链接:http://acm.hdu.edu.cn/sh ...

  7. 14.Android UiAutomator 图像处理

    一.BitMap介绍 1.图像使用场景 1)效果类截图 2)不可见的组件图像对比 3)失败与异常截图 4)利用图像判断组件 2.部分API简单说明 API 说明 compress 压缩图片 copy ...

  8. Qt ------ 再论事件循环

    在介绍在以前,我们要认识两个术语: 可重入的(Reentrant):如果多个线程可以在同一时刻调用一个类的所有函数,并且保证每一次函数调用都引用一个唯一的数据,就称这个类是可重入的(Reentrant ...

  9. js 时间戳 转化

    new Date((1524142795*1000)).toJSON().slice(11,16)

  10. git安装和简单配置

    http://pan.baidu.com/share/link?shareid=4291215660&uk=219947478 直接贴网盘的地址了