zoukankan      html  css  js  c++  java
  • 4. git log的常见用法

    git log

    ======见https://blog.csdn.net/daguanjia11/article/details/73823617

    +++++++++++++++++++++++

    使用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这几个参数,几乎能满足大部分检索需求了。

  • 相关阅读:
    POJ 2018 二分
    873. Length of Longest Fibonacci Subsequence
    847. Shortest Path Visiting All Nodes
    838. Push Dominoes
    813. Largest Sum of Averages
    801. Minimum Swaps To Make Sequences Increasing
    790. Domino and Tromino Tiling
    764. Largest Plus Sign
    Weekly Contest 128
    746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/wangrui38/p/9256367.html
Copyright © 2011-2022 走看看