[Git] git log命令

这是git的新系列,不常用的命令和其参数比较容易记不住,干脆将常用的记录下来,日后查查方便也是好的,一篇文章一个git命令,长短根据命令有所不同。

git log命令主要用于查看提交历史,同时根据添加的参数不同也会有不同的用法

 


git log

直接使用git log,使用效果如下图所示,会把提交历史按照如下图的格式展示出来,这是在使用git中必不可少的一条命令

这个命令会根据提交的事件列出所有更新,最近的更新在最上面

从上往下,第一行是提交号,这是该次提交的SHA-1校验和

第二行是作者的名字

第三行是提交时间

最后一行是提交说明

如果提交数过多会进行分页显示,可以按回车继续查看或者q退出查看


git log -2

通过参数,git log -2可以只显示最近的两条提交记录


git log -p

最常用的选项是 -p,这个参数可以用来展示出每次提交内容的差异,不过内容可能会比较多,一般会和上面的-2参数一起使用限定查看的提交数

当然直接指定commit号,查看对应的commit的差异也是可以的


git -log --stat

然而你并不想要这么详细的信息(我的那个就贼长,根本看不下去),也不想要裸命令那么简短的信息,于是应该使用-stat参数

注意了,这里的参数是“两道杠”,一道杠等级不够大队长(git bash)是不认的

这根本看不到啥啊?不满意这个参数往下看。

 


 

git log --pretty

--stat显然不能满足定制的需要,所以我们用点厉害的,--pretty参数可以定制显示格式,从最牛皮的开始

git log --pretty=format

它可以定制要显示的记录格式,这才是最想要的

我要偷懒截图了,表格不想弄了

 

git log --pretty=oneline

它可以让你的提交在一行显示完(当然显示器得够宽)

git log --pretty=short

真的很short了【笑哭】

git log --pretty=full

git log --pretty=fuller

这俩命令就不浪费时间了,只是比short多了点commit信息


git log --shortstat

这个真的就是比--stat短了一点啊,只显示--stat中最后的修改过的统计


git log --name-only

只是在提交信息后面显示被修改的文件清单,连修改几行都不给你显示了


git log --since=2.weeks

虽然有git log -2这样的操作但是一般是不会使用的,有按照时间作限制的选项更常用,例子中的命令是显示近两周的提交

见笑了,两周内该仓库并没有提交(我又懒了)

比较强大的是,这个参数支持多种日期的格式,2018-02-01可以,你要是英语能力过关也可以用英语,2 years 1 day 3 minutes ago

选项 说明
-(n) 就是-2这样的用法仅显示最近的n条提交
--since , --after 和例子一样用来限制时间的,仅显示指定时间之后的提交
--until , --before 仅显示指定时间之前的提交
--author 指定作者
--committer 指定提交者
--grep 跟linux的grep一个意思,按关键字显示
-S 仅显示添加或移除了某个关键字的提交

 

 

 

 

 

 

 

 

 

 


 

感觉-S比较难懂,来个例子

git log -S Singleton

这个是找出添加了 Singleton 这个关键字的提交,和grep参数还有一些区别 


 

git log --grep Singleton

--grep 参数是找出commit message中的关键字,并不能进入提交内部看代码部分,但是-S是根据代码的部分查找

 

 

这次就到这就结束啦,如果有错我会再进行修正,请大家多多指教