git log -n
展示前n条数据
git log –stat
展示简要的每次提交行数的变化,及其他基本信息
选项显示每次提交的文件增删数量(注意:修改一行记作增加一行且删去一行)
git log -p
展示每次提交详细的代码变化
类似Linux的diff
git log –pretty=oneline
用一行展示每次提交的commit id 和 提交注释信息
git log –graph
展示分支信息
git log –pretty=format:""
个人log配置个性化输出命令
- %H 提交对象(commit)的完整哈希字串
- %h 提交对象的简短哈希字串
- %T 树对象(tree)的完整哈希字串
- %t 树对象的简短哈希字串
- %P 父对象(parent)的完整哈希字串
- %p 父对象的简短哈希字串
- %an 作者(author)的名字
- %ae 作者的电子邮件地址
- %ad 作者修订日期(可以用 -date= 选项定制格式)
- %ar 作者修订日期,按多久以前的方式显示
- %cn 提交者(committer)的名字
- %ce 提交者的电子邮件地址
- %cd 提交日期
- %cr 提交日期,按多久以前的方式显示
- %s 提交说明
git log –since –author –grep
展示指定log信息,时间参数需要用UTC格式时间
- -n 仅显示最近的 n 条提交
- –since, –after 仅显示指定时间之后的提交。
- –until, –before 仅显示指定时间之前的提交。
- –author 仅显示指定作者相关的提交。
- –committer 仅显示指定提交者相关的提交。
git log hash..
可以输出指定hash之后的提交
git log --decorate
让 git log 显示指向这个提交的所有引用(比如说分支、标签等)
Shortlog
git shortlog 是一种特殊的 git log,它是为创建发布申明设计的。它把每个提交按作者分类,显示提交信息的第一行。这样可以很容易地看到谁做了什么。
Graph
--graph 选项绘制一个 ASCII 图像来展示提交历史的分支结构。它经常和 --oneline 和 --decorate 两个选项一起使用,这样会更容易查看哪个提交属于哪个分支
星号表明这个提交所在的分支,所以上图的意思是 23ad9ad 和 16b36c6 这两个提交在 topic 分支上,其余的在 master 分支上。
虽然这对简单的项目来说是个很好用的选择,但你可能会更喜欢 gitk 或 SourceTree 这些更强大的可视化工具来分析大型项目。
按日期
git log --after="2014-7-1"
使用 --after 或 --before 标记来按日期筛选。它们都接受好几种日期格式作为参数
get log --after="yesterday"
也可以传入相对的日期,比如一周前("1 week ago")或者昨天("yesterday")
git log --after="2014-7-1" --before="2014-7-4"
可以同时提供--before 和 --after 来检索两个日期之间的提交
- --since、--until 标记和 --after、--before 标记分别是等价的。
按作者
git log --author="John"
只想看某一特定作者的提交的时候,你可以使用 --author 标记。它接受正则表达式,返回所有作者名字满足这个规则的提交。如果你知道那个作者的确切名字你可以直接传入文本字符串,它会显示所有作者叫 John 的提交。作者名不一定是全匹配,只要包含那个子串就会匹配
git log --author="John|Mary"
你也可以用正则表达式来创建更复杂的检索。比如,下面这个命令检索名叫 Mary 或 John 的作者的提交。 注意作者的邮箱地址也算作是作者的名字,所以你也可以用这个选项来按邮箱检索。如果你的工作流区分提交者和作者,--committer 也能以相同的方式使用。
按提交信息
按提交信息来过滤提交,可以使用 --grep 标记。它和上面的 --author 标记差不多,只不过它搜索的是提交信息而不是作者。比如说,你的团队规范要求在提交信息中包括相关的issue编号,可以用下面这个命令来显示这个 issue 相关的所有提交: git log --grep="JRA-224:" 也可以传入 -i 参数来忽略大小写匹配。