git log

一、git日志格式化输出

git log --oneline

–oneline标记将每个commit压缩成一行. 默认情况下显示一个commit ID和commit描述的第一行

git log --oneline --decorate

许多时候知道commit是和哪一个分支或tag关联的是非常有用的. --decorate标记会让git log显示每个commit的引用(如:分支、tag等).

git log --stat

–stat显示每个commit中每个文件的添加的行数和删除的行数.这对我们了解一个commit大致有些什么修改非常有用

git log -p

如果你想看每个commit具体修改了些什么,可以使用这个命令

git shortlog

将commit按照作者分组, 显示每个commit的第一行描述. 通过他你很容易看到谁做了些什么
默认情况下git shortlog按照作者名排序, 你可以使用-n按照每个作者的commit数量来排序

git log --graph --oneline --decorate

–graph标记会画出一个ASCII图展示commit历史的分支结构. 通常和–oneline --decorate结合使用

二、自定义输出

git log --pretty=format:"%cn committed %h on %cd"

可以使用–pretty=format:""来自定义输出.

例如%cn代表commiter name, %h代表commit hash的缩写, %cd代表commiter date.

三、筛选commit历史

1、按数量

git log -3

可以使用-n来限制输出的数量. 下面的例子只显示最近3个commit.

2、按日期

git log --after="2014-7-1" --before="2014-7-4"

如果看某个时间段的commit可以同时使用–after和–before. 下面的例子显示2014年7月1日到2014年7月4日之间的commit:

3、按作者

git log --author="John"

显示John贡献的commit. 作者名不需要精确匹配–只需要包含就行了

4、按commit描述

git log --grep="JRA-224"

例如, 如果你的团队会在每个commit描述里面加上相关的issue号, 你可以使用下面的命令查找跟某个issue相关的commit:
还可以传入-i用来忽略大小写.

5、按文件

git log -- foo.py bar.py

这里的–是告诉Git后面的参数是文件路径而不是branch的名字. 如果后面的文件路径不会和某个branch产生混淆, 你可以省略–

6、按内容

git log -S"Hello,World!"

有时你想搜索和新增或删除某行代码相关的commit. 可以使用 -S"". 下面的例子假设你想知道Hello, World!这句话是什么时候加入到项目里去的, 你可以使用下面的命令:
如果你想使用正则表达式去匹配而不是字符串, 那么你可以使用-G代替-S.

7、按范围

git log <since>..<until>

这个命令非常有用当你使用branch做为range参数的时候. 能很方便的显示2个branch之间的不同. 看看下面的命令:

git log master..feature

master…feature这个range包含了在feature有而在master没有的所有commit.

8、过滤merge commit

git log --no-merges

默认情况下git log会输出merge commit. 你可以通过–no-merges标记来过滤掉merge commit:

git log --merges

如果你只对merge commit感兴趣可以使用–merges:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值