git log常用命令
使用git log命令可以查看提交历史,代码如下:
$ git log
git log指令不加其他参数,可以列出所有历史提交,分析如下:
- 按照提交的时间(从上到下)顺序排列,最上面为最新提交的。
- commit后面是经过SHA-1加密算法对此次提交计算的结果,可以唯一标识此次提交(重复的可能性可以忽略不计)。
- Author后面分别是提交的用户名和电子邮件地址,它们之间用空格分隔。
- Date后面是提交的时间日期。
- Date垂直的下方中间以空格分隔的是提交信息说明。
1、查看最近的n此提交:
$ git log -n
2、 查看指定文件名的提交历史记录:
查看readme.txt文件的历史提交记录,如果多个文件,以空格分隔。
$ git log readme.txt
3、查看指定目录下文件提交历史记录:
$ git log dir/
4、查看指定分支或者标签历史提交记录:
查看标签标签v2.0之后的历史提交记录(不包含v2.0):
$ git log v2.0..
查看master分支历史提交记录,但是不包含ant分支历史记录:
$ git log ant..master
查看ant分支历史提交记录,但是不包含master分支历史记录:
$ git log master..ant
查看master分支或者ant分支的历史提交记录:
$ git log master...ant
5、查询commit提交历史提交记录:
查看commit之前的历史提交记录(包含commit自身)。
$ git log commit
查看commit1与commit2之间的历史提交记录(包括两者)。
$ git log commit1 commit2
查看commit1与commit2之间的历史提交记录(不包括commit1)。
$ git log commit1..commit2
6、按照日期查看提交历史记录:
(1)--after=xxx
显示2020-3-3之后的commit(包含3月3号)。日期还可以是相对日期,比如"1 week ago"和”yesterday"。与--since功能相同。
$ git log --after="2020-3-3”
(2)--before=
显示2020-3-3之前的commit(包含3月3号)。与--until功能相同。
$ git log --before="2020-3-3”
7、按照作者和邮箱查看提交历史记录:
$ git log --author="your name"
展示作者为"your name"的历史提交记录。
特别说明:
(1)作者名不需要精确匹配,只需要包含即可。
(2)使用正则,例如git log --author="antozne\|softwhy”,搜索antozne和softwhy提交的历史记录。
(3)--author不但可以搜索作者,也可以搜索邮箱。
8、--pretty参数:
通过不同的参数值以不同的格式显示历史提交记录。可以有的参数值如下:
(1)oneline。
(2)short。
(3)medium(默认值)。
(4)full。
(5)fuller。
(6)email。
(7)raw。
(8)format(此参数比较复杂后面会单独介绍)。
比较常用的参数如oneline,日志信息将会在一行显示:
$ git log --pretty=oneline

8、按照提交描述信息查看历史提交记录:
$ git commit -m "add 3"
$ git log --pretty=oneline --grep="add"
默认是区分大小写的,增加-i可以不区分大小写
$ git log --pretty=oneline --grep="Add" -i
特别说明:如果同时使用--grep和--author筛选,需要附加--all-match参数。
9、按照提交内容查看历史提交记录:
实际应用中,可能需要查找新增或者删除指定的代码,使用-S"<string>"、-G"<string>"即可。
$ git log -S"数据处理"
可以筛选内容中含有"数据处理"文件所在的提交。
如果想使用正则表达式去匹配而不是字符串, 那么你可以使用-G代替-S。
特别说明:-S和-G之后没有等号(=)。
10、其他参数:
(1)-p :查看提交时的补丁信息。
(2)--stat :列出文件的修改行数。
(3)--sortstat:只显示--stat中最后行数修改添加移除的统计。
(4)--graph:以简单的图形方式列出提交记录。
(5)--abbrev-commit:仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
(6)--relative-date:使用较短的相对时间显示("1 weeks ago")。
(7)--name-only:仅在提交信息后显示已修改的文件清单。
(8)--name-status:显示新增、修改、删除的文件清单。
——————————————————————
参考文献: