git log 命令
在完成了几次提交,或者克隆了一个已有提交历史的仓库后,要查看历史提交记录,可以通过git log
命令来实现。
$ git logcommit 0becea8e1966df258b7a7c12e2f8eb906148514c (HEAD -> master)Author: velscode <velscode@>Date: Sat Mar 23 18:59:04 +0800first commit
默认不加参数的情况下,git log
会按照时间顺序列出仓库中的所有提交,其中最新的提交显示在最前面。和每个提交一同列出的还有它的SHA-1校验和、作者的姓名和邮箱。
选项
git log
有很多不同的选项,我们几个比较常用的
-p
:显示出每次提交所引入的差异
-1
只显示出最近的1次提交
$ git log -p -1commit 0becea8e1966df258b7a7c12e2f8eb906148514c (HEAD -> master)Author: velscode <velscode@>Date: Sat Mar 23 18:59:04 +0800first commitdiff --git a/main.c b/ew file mode 100644index 0000000..7440538--- /dev/null+++ b/main.c@@ -0,0 +1 @@+Add a new line for main.c\ No newline at end of file
可以看到什么文件的哪一行被修改了,这里是main.c中增加了一行“Add a new line for main.c”
--stat
:如果只想要查看摘要统计信息
$ git log -1 --statcommit 0becea8e1966df258b7a7c12e2f8eb906148514c (HEAD -> master)Author: velscode <velscode@>Date: Sat Mar 23 18:59:04 +0800first commitmain.c | 1 +1 file changed, 1 insertion(+)
--stat
选项会在每个提交下面列出如下内容:改动的文件列表、共有多少文件被改动以及文件里有多少新增行和删除行。另外还会在最后输出总计信息。
--pretty
是另一个比较有用的选项,它可以更改日志输出的默认格式。Git有一些预置的格式可供你选择。例如,在浏览大量提交时,oneline
格式选项很有用,它可以在没一行中显示一个提交。除此之外,short
、full
、fuller
格式选项会分别比默认输出减少或增加一些信息
$ git log --pretty=oneline0becea8e1966df258b7a7c12e2f8eb906148514c (HEAD -> master) first commit
最值得注意的选项是format
,它允许你指定自己的输出格式。这样的输出有利于机器自动解析,其结果不会随着Git软件版本更新而改变。
$ git log --pretty=format:"%h - %an , %ar : %s"0becea8 - velscode , 2 days ago : first commit
这里列举一些有用的格式选项
这里提到了作者和提交者的概念,这个概念以后会再细述区别。
oneline
和format
这两个选项如果与log命令的另一个选项--graph
一起使用,就能发挥更大的作用。具体来说,--graph
选项会用ASCII字符形式的简单图标来显示Git分支和合并历史
事实上,git log
还有很多选项,这里给出一些常用的
限制提交历史的输出范围
git log除了有输出格式的选项之外,还有一些有用的选项,它可以只显示出最近的若干条信息。不过这个选项在实际中不常用,因为默认情况下Git的所有输出会通过管道机制输入给分页程序(Pager),使得一次只显示出一页内容。