Notes about the usage of git log
文章目录
在看源码过程中,发现可以好好利用git log来查看和搜索提交历史,本文特此mark下notes。大部分内容转载自git log的常见用法。
官方文档
https://git-scm.com/docs/git-log
man git-log
基本用法
git log
使用git log命令,什么参数都没有的话,会以下面的格式输出所有的日志。如果日志特别多的话,在git bash中,按向下键来查看更多,按q键退出查看日志。
git log --oneline
--oneline
参数可以将每条日志的输出为一行,如果日志比较多的话,用这个参数能够使结果看起来比较醒目。
git log -[length]
-[length]
参数用于指定显示多少条日志
这里面使用-2
来指定显示前两条日志
git log --skip=[skip]
--skip=[skip]
参数用来指定跳过前几条日志。下面的命令用来查看第二和第三条日志
git log --pretty=raw
--pretty=raw
会显示出关于每次提交的更多信息。
输出的信息中包括提交ID,文件树ID,父提交ID,作者和提交者,这些信息都非常有用。
git log -p
-p
参数输出的信息会更多,用来显示提交的改动记录,相当于多次使用git show [commit_id]
的结果。
git log --graph
--graph
参数会绘制提交的线索,如果有合并的话,也会更清晰地显示出来
这样可以查看哪几个commit是一块提交的。
git log --decorate
--decorate
参数用来显示一些相关的信息,如HEAD、分支名、tag名等。
git log --name-status
--name-status
参数会带出每次提交对应的文件改动。
搜索git日志
通过作者搜索
有时候会从提交记录中查看一下自己(或某个人)的某次提交,git log命令可以很快地检索出这些信息
git log --author yourname
可以筛选出yourname
用户提交的所有日志。这里的yourname
可以包含通配符,从Author: zdk <zdk@menhoo.com>
的信息中匹配信息。
通过关键字搜索
git log --grep keywords
可以从提交的关键字中抓取匹配的commit项。
通过文件名搜索
有时候,我们想查某个文件(file or folder)的所有修改记录,可以根据文件名来过滤一下只跟这个文件有关的提交。git log -- A
查看两个tag之间的commit
git log --oneline v3.11..v3.12
Example
查看KVM目录下的commit
git log --oneline -- arch/x86/kvm/
查看vmx.c的commit
git log --oneline -- arch/x86/kvm/vmx/vmx.c
或者git log -p -- arch/x86/kvm/vmx/vmx.c
然后关键字搜索,找到你想要的commit。
参考资料: