git log

前边几节中我们新建了git仓库,并向仓库中提交了index.html文件

如果我们想查看git仓库的提交记录怎么办呢,接下来就请出这节要讲的命令 git log

通过git log命令我们能很方便查看所有的历史提交记录,但不包括已经被删除的 commit 记录和 reset 的操作

$ git log
commit f42e369bde1b19e256da3cc64473bf9ded50e66d (HEAD -> master)
Author: shifou <openness666@gmail.com>
Date:   Fri Aug 21 08:34:02 2020 +0800

    新增一行div

commit 08bf08ab7a7c51af52804b89c7e26cb8d8a91073
Author: shifou <openness666@gmail.com>
Date:   Thu Aug 20 21:09:19 2020 +0800

    初始化index文件

执行git log之后 我们执行过的所有提交信息就显示了出来,其中包括提交ID、提交人信息、提交时间、提交内容描述,一目了然

其中commit id f42e369bde1b19e256da3cc64473bf9ded50e66d 是以16进制表示的一个SHA值,相当于提交的唯一编号,每个人每次提交commit id都会不一样,就像是提交操作的身份证号,我们通过commit id就能找到这次提交

我们可以在git log后边加上--stat参数,用来显示 commit 中更改的文件以及添加或删除的行数

$ git log --stat
commit 5f49a8e1ae061d39cbac552ddf2ca4aa09daf35f (HEAD -> master, tag: v2.0.0, tag: v1.0.0)
Author: weizhen <openness666@gmail.com>
Date:   Sun Aug 23 14:58:50 2020 +0800

    html变更

 index.html | 1 +
 1 file changed, 1 insertion(+)

commit 89883a845150ed6fe576a6bf519a810340d09952
Author: weizhen <openness666@gmail.com>
Date:   Sun Aug 23 11:06:03 2020 +0800

    在develop分支新增了一行div

 index.html | 1 +
 1 file changed, 1 insertion(+)

commit 81b4a4c2a728d049cdb3f28a9601ac8a5cb5743d
Author: weizhen <openness666@gmail.com>
Date:   Fri Aug 21 16:07:24 2020 +0800

    fdg

 index.scss | 6 ++++++
 1 file changed, 6 insertions(+)

如果你想要查看某个文件的历史修改的内容,可以使用git log -p <文件名>命令

git log -p <文件名> (可查看该文件以前每一次的修改内容)

git log -p -1 <文件名>(只查看该文件当前一次的修改内容)

例如查看index.html被修改的具体内容,可以看到在每次提交中对index.html 做出了哪些修改

$ git log -p index.html
commit 5f49a8e1ae061d39cbac552ddf2ca4aa09daf35f (HEAD -> master, tag: v2.0.0, tag: v1.0.0)
Author: weizhen <openness666@gmail.com>
Date:   Sun Aug 23 14:58:50 2020 +0800

    html变更

diff --git a/index.html b/index.html
index 8a6a3be..2ec2097 100644
--- a/index.html
+++ b/index.html
@@ -5,6 +5,7 @@
     <title>Git-师否</title>
   </head>
   <body>
+    ffggggg
     <div>我是新增的一行</div>
     <div>我是在develop分支上新增的行</div>
   </body>

commit 89883a845150ed6fe576a6bf519a810340d09952
Author: weizhen <openness666@gmail.com>
Date:   Sun Aug 23 11:06:03 2020 +0800

    在develop分支新增了一行div

diff --git a/index.html b/index.html
index 7f09218..8a6a3be 100644
--- a/index.html
+++ b/index.html
@@ -6,5 +6,6 @@
   </head>
   <body>
     <div>我是新增的一行</div>
+    <div>我是在develop分支上新增的行</div>
   </body>
 </html>

我们可以用 --oneline 选项来查看历史记录的简洁的版本

$ git log --oneline
f42e369 (HEAD -> master) 新增一行div
08bf08a 初始化index文件

我们还可以用 --graph 选项,查看历史中什么时候出现了分支、合并,下图中的黄虚线就是我们的分支图

$ git log  --graph
* commit f42e369bde1b19e256da3cc64473bf9ded50e66d (HEAD -> master)
| Author: shifou <openness666@gmail.com>
| Date:   Fri Aug 21 08:34:02 2020 +0800
| 
|     新增一行div
| 
* commit 08bf08ab7a7c51af52804b89c7e26cb8d8a91073
  Author: shifou <openness666@gmail.com>
  Date:   Thu Aug 20 21:09:19 2020 +0800
  
      初始化index文件

如果只想查找某个用户的提交日志怎么办,那你可以使用命令:git log --author 比方说我们要找 Git 源码中 shifou 提交的部分:

$ git log --author=shifou
commit f42e369bde1b19e256da3cc64473bf9ded50e66d (HEAD -> master)
Author: shifou <openness666@gmail.com>
Date:   Fri Aug 21 08:34:02 2020 +0800

    新增一行div

commit 08bf08ab7a7c51af52804b89c7e26cb8d8a91073
Author: shifou <openness666@gmail.com>
Date:   Thu Aug 20 21:09:19 2020 +0800

    初始化index文件

如果你想查看某个时间段的提交记录,可以git log 后边加上--since 和 --before,但是你也可以用 --until 和 --after

例如我想查看一小时之前,2020年8月18之后的提交的记录

$ git log --before={1.hours.ago} --after={2020-08-18}
commit 08bf08ab7a7c51af52804b89c7e26cb8d8a91073
Author: shifou <openness666@gmail.com>
Date:   Thu Aug 20 21:09:19 2020 +0800

    初始化index文件

通过git的图形客户端(后边我会详细介绍图形客户端的使用)我们也能很清楚的看到我们提交的历史记录

最后更新于

这有帮助吗?