博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git log的常见用法
阅读量:6242 次
发布时间:2019-06-22

本文共 3148 字,大约阅读时间需要 10 分钟。

git log

使用git log命令,什么参数都没有的话,会以下面的格式输出所有的日志(我当前的git仓库只有三个提交)。如果日志特别多的话,在git bash中,按向下键来查看更多,按q键退出查看日志。

$ git logcommit c08099d1cf05fdc541752b049a91b92bdcf78a12Author: zdk 
Date: Mon Jun 19 23:08:07 2017 +0800 add hello.txt to git rep commit 723687a41685667a01dbd6254eb148d19501c3f1 Author: zdk
Date: Sun Jun 18 22:27:29 2017 +0800 add c.txt commit 1a29bde9519195f14e98270c29d125e9d18b8d87 Author: zdk
Date: Sun Jun 11 22:40:21 2017 +0800 新增了a.txt和b.txt文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

git log –oneline

--oneline参数可以将每条日志的输出为一行,如果日志比较多的话,用这个参数能够使结果看起来比较醒目。为了节约日志的篇幅,我后面也会频繁地使用这个参数。

$ git log --onelinec08099d add hello.txt to git rep723687a add c.txt 1a29bde 新增了a.txt和b.txt文件
  • 1
  • 2
  • 3
  • 4

git log -[length]

-[length]参数用于指定显示多少条日志

$ git log --oneline -2c08099d add hello.txt to git rep723687a add c.txt
  • 1
  • 2
  • 3

这里面使用-2来指定显示前两条日志

git log –skip=[skip]

--skip=[skip]参数用来指定跳过前几条日志。下面的命令用来查看第二和第三条日志

$ git log --skip=1 -2 --oneline723687a add c.txt 1a29bde 新增了a.txt和b.txt文件
  • 1
  • 2
  • 3

git log –pretty=raw

我在上面多次使用--oneline是为了节约文章篇幅,使文章看起来尽量整洁。而--pretty=raw则会显示出关于每次提交的更多信息

$ git log --pretty=raw -1commit c08099d1cf05fdc541752b049a91b92bdcf78a12tree 5ef6cd7051101c4294cb92980f0cf3740478e120parent 723687a41685667a01dbd6254eb148d19501c3f1 author zdk 
1497884887 +0800 committer zdk
1497884887 +0800 add hello.txt to git rep
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

输出的信息中包括提交ID,文件树ID,父提交ID,作者和提交者,这些信息都非常有用。

git log -p

-p参数输出的信息会更多,用来显示提交的改动记录,相当于多次使用git show [commit_id]的结果。

$ git log -1 -pcommit c08099d1cf05fdc541752b049a91b92bdcf78a12Author: zdk 
Date: Mon Jun 19 23:08:07 2017 +0800 add hello.txt to git rep diff --git a/hello.txt b/hello.txt new file mode 100644 index 0000000..ce01362 --- /dev/null +++ b/hello.txt @@ -0,0 +1 @@ +hello
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

git log –graph

--graph参数会绘制提交的线索,如果有合并的话,也会更清晰地显示出来

$ git log --graph --oneline* c08099d add hello.txt to git rep* 723687a add c.txt * 1a29bde 新增了a.txt和b.txt文件
  • 1
  • 2
  • 3
  • 4

git log –decorate

--decorate参数用来显示一些相关的信息,如HEAD、分支名、tag名等

$ git log --decorate --onelinec08099d (HEAD -> master) add hello.txt to git rep723687a add c.txt 1a29bde 新增了a.txt和b.txt文件
  • 1
  • 2
  • 3
  • 4

下面使用git tag命令给第二次提交加上一个名叫important的tag。

git tag 'important' 723687a
  • 1

然后再次使用--decorate参数来查看一下

$ git log --decorate --onelinec08099d (HEAD -> master) add hello.txt to git rep723687a (tag: important) add c.txt 1a29bde 新增了a.txt和b.txt文件
  • 1
  • 2
  • 3
  • 4

显示出了tag的信息。

git log –name-status

--name-status参数会带出每次提交对应的文件改动。

$ git log --name-status --onelinec08099d add hello.txt to git repA       hello.txt723687a add c.txt A c.txt 1a29bde 新增了a.txt和b.txt文件 A a.txt A b.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

搜索git日志

通过作者搜索

有时候会从提交记录中查看一下自己(或某个人)的某次提交,git log命令可以很快地检索出这些信息

$ git log --author yourname
  • 1

可以筛选出yourname用户提交的所有日志。这里的yourname可以包含通配符,从Author: zdk <zdk@menhoo.com>的信息中匹配信息。

通过提交关键字搜索

$ git log --grep keywords
  • 1

可以从提交的关键字中抓取匹配的commit项。

通过文件名搜索

有时候,我们想查某个文件的所有修改记录,可以根据文件名来过滤一下只跟这个文件有关的提交,就可以使用-p参数

git log -p -- RELEASE-NOTE.md
  • 1

注意,这个--后面跟的是完整的文件名的相对地址,不是模糊匹配。如果你的文件的相对地址是config/my.config的话,你就需要用下面的命令

git log -p -- config/my.config
  • 1

通过组合使用--authergrep-p这几个参数,几乎能满足大部分检索需求了。

转载地址:http://agsia.baihongyu.com/

你可能感兴趣的文章
iostat详细使用
查看>>
用户与组
查看>>
【12c新特性】12c中新加入的Enqueue Lock
查看>>
JavaScript语法详解(四)
查看>>
Fail to queue the whole FAL gap in dataguard一例
查看>>
03在Windows Server 2008R2上面建立子域
查看>>
网络系统组成、OSI模型、TCP/IP协议簇
查看>>
服务器无法远程
查看>>
目前发现Exchange 2016的两个管理问题
查看>>
java发送邮件问题
查看>>
myeclipse2013 安装 egit
查看>>
介绍几种常见的网站负载均衡技术
查看>>
httpd详解
查看>>
jquery获取复选框的值
查看>>
深入理解C语言的define
查看>>
安装Discuz
查看>>
zabbix问题集锦
查看>>
MYSQL EXPLAIN 中的KEY_LEN的说明
查看>>
Linux笔记(VIM)
查看>>
pyrhon脚本小练习(9*9乘法表)
查看>>