查看历史纪录(提交历史)

$ git log

带有差异信息的历史记录

$ git log -p -2
	# -p 内容差异
	# -2 最近的n 条内容
		# 不过git log 自动会进行分页, 只显示一页内容

简略历史记录

$ git log --stat -2  # --stat 简略历史记录  -2 最新的两个(数字随便写)

commit f9fc76b972d73ef539b13204a7cad25759f5d8a5 (HEAD -> master)
Author: bifan <five1987@gmail.com>
Date:   Fri Dec 6 12:14:32 2019 +0800

    描述信息

 README | 2 --        #文件名 | 有变动的行数 变动的类型(+ -, 增加还是删除)
	1 file changed, 2 deletions(-)  #变动文件数1, 2行有删除动作

自定义历史信息的格式

$ git log --pretty=oneline #每次提交历史只显示一行内容(commit 的sha-1 值和描述)
$ git log --pretty=format "表达式"

git log --pretty=format 常用表达式

$ git log --pretty=oneline --graph
$ git log --pretty=format:"%h %s" --graph
	#--graph 形象的显示分支信息

#例如:
$ git log --pretty=format:"%h %s" --graph
* 2d3acf9 ignore errors from SIGCHLD on trap
*  5e3ee11 Merge branch 'master' of git://github.com/dustin/grit
|\\
| * 420eac9 Added a method for getting the current branch.
* | 30e367c timeout code and tests
* | 5a09431 add timeout protection to grit
* | e1193f8 support for heads with slashes in them
|/
* d6016bc require time for xmlschema
*  11d191e Merge branch 'defunkt' into local

git log 的常用option

限制输出长度

--since #限制提交的时间
	$ git log --since=2.weeks
	$ git log --since=2018-05-15
	$ git log --since="2 years 1 day 3 minutes ago"
--grep #匹配commit 说明中的关键字
--author #匹配作者名称
	#上面两者默认是满足任一条件就行, 若要都满足加上 --all-match
-S #匹配那些变更的字符(删除的字符, 增加的字符)
	-Sfunc_name #比如匹配添加func_name 这个函数的那次提交
路径
	表达式最后用-- 隔开, 然后写上路径信息, 只匹配指定文件夹的历史记录
		$git log --stat --pretty=oneline -- src/ #src src/ 在windows 下没区别

过滤 git log 输出的选项