git log常用命令

使用git log命令可以查看提交历史,代码如下:

$ git log

 git log指令不加其他参数,可以列出所有历史提交,分析如下:

  1. 按照提交的时间(从上到下)顺序排列,最上面为最新提交的。
  2. commit后面是经过SHA-1加密算法对此次提交计算的结果,可以唯一标识此次提交(重复的可能性可以忽略不计)。
  3. Author后面分别是提交的用户名和电子邮件地址,它们之间用空格分隔。
  4. Date后面是提交的时间日期。
  5. 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

a:3:{s:3:\"pic\";s:43:\"portal/201807/17/094515z26hfhdtwctair6z.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}
8、按照提交描述信息查看历史提交记录:

$ git commit -m "add 3"
$ git log --pretty=oneline --grep="add"

a:3:{s:3:\"pic\";s:43:\"portal/201807/17/094841scjfjbiqs4sb6sbj.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

默认是区分大小写的,增加-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:显示新增、修改、删除的文件清单。

——————————————————————

参考文献:

https://www.softwhy.com/article-8501-1.html