• git log的常见用法


    git log

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

    $ git log
    commit c08099d1cf05fdc541752b049a91b92bdcf78a12
    Author: zdk <zdk@menhoo.com>
    Date:   Mon Jun 19 23:08:07 2017 +0800
    
        add hello.txt to git rep
    
    commit 723687a41685667a01dbd6254eb148d19501c3f1
    Author: zdk <zdk@menhoo.com>
    Date:   Sun Jun 18 22:27:29 2017 +0800
    
        add c.txt
    
    commit 1a29bde9519195f14e98270c29d125e9d18b8d87
    Author: zdk <zdk@menhoo.com>
    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 --oneline
    c08099d add hello.txt to git rep
    723687a add c.txt
    1a29bde 新增了a.txt和b.txt文件
    • 1
    • 2
    • 3
    • 4

    git log -[length]

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

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

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

    git log –skip=[skip]

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

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

    git log –pretty=raw

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

    $ git log --pretty=raw -1
    commit c08099d1cf05fdc541752b049a91b92bdcf78a12
    tree 5ef6cd7051101c4294cb92980f0cf3740478e120
    parent 723687a41685667a01dbd6254eb148d19501c3f1
    author zdk <zdk@menhoo.com> 1497884887 +0800
    committer zdk <zdk@menhoo.com> 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 -p
    commit c08099d1cf05fdc541752b049a91b92bdcf78a12
    Author: zdk <zdk@menhoo.com>
    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 --oneline
    c08099d (HEAD -> master) add hello.txt to git rep
    723687a 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 --oneline
    c08099d (HEAD -> master) add hello.txt to git rep
    723687a (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 --oneline
    c08099d add hello.txt to git rep
    A       hello.txt
    723687a 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这几个参数,几乎能满足大部分检索需求了。

  • 相关阅读:
    统计学方法(t-检验)
    generate的使用verilog
    FPGA的存储方式大全
    matlab函数
    三年后的我-记于2018
    labview学习——用户界面模式
    labview线程相关
    labview状态机
    JS~字符串长度判断,超出进行自动截取(支持中文)
    AngulaJs -- 隔离作用域
  • 原文地址:https://www.cnblogs.com/senior-engineer/p/9765821.html
Copyright © 2020-2023  润新知