“How to use the git log command”的版本间的差异

来自百问网嵌入式Linux wiki
(创建页面,内容为“{{DISPLAYTITLE:如何使用git log命令}} Category:How_toCategory:Git”)
 
 
第1行: 第1行:
 
{{DISPLAYTITLE:如何使用git log命令}}
 
{{DISPLAYTITLE:如何使用git log命令}}
  
 +
= 前言 =
 +
: git log(git-log - Show commit logs)顾名思义就是显示提交日志的意思。
 +
: 如果我们想要了解当前的代码仓库的工作日志(提交日志)就需要用到 git log 命令。
 +
: git log 可以帮助很方便地查看日志,可以根据自己需要,将日志按照特定格式显示,或者输出某种格式等。
  
 +
: 在使用之前,先查看其帮助信息,这将有助于我们更好的理解这个命令:
 +
<syntaxhighlight lang# "bash">
 +
    book@www.100ask.org:~/tmp/Embedded-Linux-ADCMSE$ git log -h
 +
    usage: git log [<options>] [<revision-range>] [[--] <path>...]
 +
    or: git show [<options>] <object>...
  
 +
        -q, --quiet          suppress diff output
 +
        --source              show source
 +
        --use-mailmap        Use mail map file
 +
        --decorate[=...]      decorate options
 +
        -L <n,m:file>        Process line range n,m in file, counting from 1
  
 +
    book@www.100ask.org:~/tmp/Embedded-Linux-ADCMSE$
 +
</syntaxhighlight>
 +
 +
: 可见帮助信息中给出了两个用法:git log 以及 git show。本文只着重讲解 git log 的常用操作,其足够我们应对日常项目,git show 用法暂不列出。
 +
 +
== git log ==
 +
: 不带任何参数,直接执行 git log 命令将会一下面的格式输出所有的日志。
 +
{| class="wikitable"
 +
|-
 +
|spacebar || 下翻页
 +
|-
 +
|b || 上翻页
 +
|-
 +
|向上方向键  || 向上逐行查看
 +
|-
 +
|向下方向键  || 向下逐行查看
 +
|-
 +
|q      ||  退出
 +
|}
 +
 +
<syntaxhighlight lang# "bash">
 +
    book@www.100ask.org:~/tmp/Embedded-Linux-ADCMSE$ git log
 +
    commit e0ad5d61d0f315bc5d74adba9ab70452fdc6338b
 +
    Author: YobeZhou <smilezyb@163.com>
 +
    Date:  Fri Jan 3 16:49:10 2020 +0800
 +
 +
        update files
 +
    commit b19f0c472c031180e6bb8a6e5a8e0199bdf5d146
 +
    Author: YobeZhou <smilezyb@163.com>
 +
    Date:  Fri Jan 3 16:33:36 2020 +0800
 +
 +
        更新 source/download/download.md 文件
 +
 +
    commit aaa22f7a170e655e171d1f92da31ec40ce67425f
 +
    Author: YobeZhou <smilezyb@163.com>
 +
    Date:  Fri Jan 3 16:31:29 2020 +0800
 +
 +
        更新下载链接
 +
    ......
 +
</syntaxhighlight>
 +
 +
== git log --online ==
 +
: 执行时加入 --oneline 参数会将每次更改的更改日志输出为一行,一目了然。这种方法适用于当日志比较多、只想了解每次的更改报告的情况。
 +
<syntaxhighlight lang# "bash">
 +
    book@www.100ask.org:~/tmp/Embedded-Linux-ADCMSE$ git log --oneline
 +
    e0ad5d6 update files
 +
    1ea190e 删除 source/download/download.md 文件 更新 source/download/download.html 文件
 +
    b19f0c4 更新 source/download/download.md 文件
 +
    aaa22f7 更新下载链接
 +
    5385ea2 添加文件:      [韦东山] 嵌入式Linux应用开发完全手册第2版.epub  [韦东山] 嵌入式Linux应用开发完全手册第2版.zip
 +
    12a59c0 添加PDF文件
 +
    4e48077 Add download page.
 +
    c13de02 Update book
 +
    5aab338 Solve the problem of picture display in the fifth text.
 +
    163c3fe first commit
 +
    book@www.100ask.org:~/tmp/Embedded-Linux-ADCMSE$
 +
</syntaxhighlight>
 +
 +
== git log -[length] ==
 +
: git log -[length] 的作用和 git log 是一样的,不同的是 -[length] 参数是用于指定只显示多少条日志,可配合 --online 参数使用。
 +
    git log --oneline -2
 +
 +
== git log --skip=[skip] ==
 +
: 在使用 git log 时可加入 --skip=[skip] 参数,这样可以跳过指定的前面 [skip] 条日志。
 +
    git log --skip=1 -2 --oneline
 +
== git log --pretty=raw ==
 +
: --pretty=raw 参数与 --online 参数恰恰相反,--pretty=raw则会显示出关于每次提交的更详细的信息
 +
:: * 提交ID(commit)
 +
:: * 文件树ID(tree)
 +
:: * 父提交ID(parent)
 +
:: * 作者(author)
 +
:: * 提交者(committer)
 +
 +
: 示例:
 +
    git log --pretty=raw -1
 +
 +
 +
== git log -p ==
 +
: 使用 -p 参数可得到关于改动记录的更详细的信息,相当于多次使用 git show [commit_id] 。
 +
    git log -1 -p
 +
 +
== git log --graph ==
 +
: graph就是图表的意思,因此使用 --graph 参数可以得到整理好了的提交线索,如果由合并提交的话,也会显式显示出来:
 +
    git log --graph --oneline
 +
 +
== git log --name-status ==
 +
: --name-status 参数会给出每次提交对应改动的文件,一般配合 --oneline 参数使用。
 +
    git log --name-status --oneline
 +
 +
= 筛选 git 日志 =
 +
: 一个 git 项目仓库中的提交日志可能会非常多,我们往往需要有针对性地查看 git 日志。
 +
== 根据作者筛选 ==
 +
: 当需要查看提交记录中某个人地提交记录,可以使用下面地命令快速的筛选出你需要的信息:
 +
    git log --author [author_name]
 +
 +
== 根据 commit 关键字筛选 ==
 +
: 使用下面的命令,可以从提交的关键字中抓取匹配的对应 commit 项。
 +
    git log --grep [keywords]
 +
 +
== 根据文件名筛选 ==
 +
: 这个功能对于我们查看某个文件的更改过程非常有用,这样我们就可以从到到尾了解到这个文件的修改过程:
 +
    git log -p -- [filename]
 +
 +
: 最后通过组合使用 --auther、--grep、-p这几个参数,几乎能满足大部分检索需求了。
  
  
 
[[Category:How_to]][[Category:Git]]
 
[[Category:How_to]][[Category:Git]]

2020年1月10日 (五) 15:28的最新版本


前言

git log(git-log - Show commit logs)顾名思义就是显示提交日志的意思。
如果我们想要了解当前的代码仓库的工作日志(提交日志)就需要用到 git log 命令。
git log 可以帮助很方便地查看日志,可以根据自己需要,将日志按照特定格式显示,或者输出某种格式等。
在使用之前,先查看其帮助信息,这将有助于我们更好的理解这个命令:
    book@www.100ask.org:~/tmp/Embedded-Linux-ADCMSE$ git log -h
    usage: git log [<options>] [<revision-range>] [[--] <path>...]
    or: git show [<options>] <object>...

        -q, --quiet           suppress diff output
        --source              show source
        --use-mailmap         Use mail map file
        --decorate[=...]      decorate options
        -L <n,m:file>         Process line range n,m in file, counting from 1

    book@www.100ask.org:~/tmp/Embedded-Linux-ADCMSE$
可见帮助信息中给出了两个用法:git log 以及 git show。本文只着重讲解 git log 的常用操作,其足够我们应对日常项目,git show 用法暂不列出。

git log

不带任何参数,直接执行 git log 命令将会一下面的格式输出所有的日志。
spacebar 下翻页
b 上翻页
向上方向键 向上逐行查看
向下方向键 向下逐行查看
q 退出
    book@www.100ask.org:~/tmp/Embedded-Linux-ADCMSE$ git log
    commit e0ad5d61d0f315bc5d74adba9ab70452fdc6338b
    Author: YobeZhou <smilezyb@163.com>
    Date:   Fri Jan 3 16:49:10 2020 +0800

        update files
    commit b19f0c472c031180e6bb8a6e5a8e0199bdf5d146
    Author: YobeZhou <smilezyb@163.com>
    Date:   Fri Jan 3 16:33:36 2020 +0800

        更新 source/download/download.md 文件

    commit aaa22f7a170e655e171d1f92da31ec40ce67425f
    Author: YobeZhou <smilezyb@163.com>
    Date:   Fri Jan 3 16:31:29 2020 +0800

        更新下载链接
    ......

git log --online

执行时加入 --oneline 参数会将每次更改的更改日志输出为一行,一目了然。这种方法适用于当日志比较多、只想了解每次的更改报告的情况。
    book@www.100ask.org:~/tmp/Embedded-Linux-ADCMSE$ git log --oneline
    e0ad5d6 update files
    1ea190e 删除 source/download/download.md 文件 更新 source/download/download.html 文件
    b19f0c4 更新 source/download/download.md 文件
    aaa22f7 更新下载链接
    5385ea2 添加文件:      [韦东山] 嵌入式Linux应用开发完全手册第2版.epub  [韦东山] 嵌入式Linux应用开发完全手册第2版.zip
    12a59c0 添加PDF文件
    4e48077 Add download page.
    c13de02 Update book
    5aab338 Solve the problem of picture display in the fifth text.
    163c3fe first commit
    book@www.100ask.org:~/tmp/Embedded-Linux-ADCMSE$

git log -[length]

git log -[length] 的作用和 git log 是一样的,不同的是 -[length] 参数是用于指定只显示多少条日志,可配合 --online 参数使用。
   git log --oneline -2

git log --skip=[skip]

在使用 git log 时可加入 --skip=[skip] 参数,这样可以跳过指定的前面 [skip] 条日志。
   git log --skip=1 -2 --oneline

git log --pretty=raw

--pretty=raw 参数与 --online 参数恰恰相反,--pretty=raw则会显示出关于每次提交的更详细的信息
* 提交ID(commit)
* 文件树ID(tree)
* 父提交ID(parent)
* 作者(author)
* 提交者(committer)
示例:
   git log --pretty=raw -1


git log -p

使用 -p 参数可得到关于改动记录的更详细的信息,相当于多次使用 git show [commit_id] 。
   git log -1 -p

git log --graph

graph就是图表的意思,因此使用 --graph 参数可以得到整理好了的提交线索,如果由合并提交的话,也会显式显示出来:
   git log --graph --oneline

git log --name-status

--name-status 参数会给出每次提交对应改动的文件,一般配合 --oneline 参数使用。
   git log --name-status --oneline

筛选 git 日志

一个 git 项目仓库中的提交日志可能会非常多,我们往往需要有针对性地查看 git 日志。

根据作者筛选

当需要查看提交记录中某个人地提交记录,可以使用下面地命令快速的筛选出你需要的信息:
   git log --author [author_name]

根据 commit 关键字筛选

使用下面的命令,可以从提交的关键字中抓取匹配的对应 commit 项。
   git log --grep [keywords]

根据文件名筛选

这个功能对于我们查看某个文件的更改过程非常有用,这样我们就可以从到到尾了解到这个文件的修改过程:
   git log -p -- [filename]
最后通过组合使用 --auther、--grep、-p这几个参数,几乎能满足大部分检索需求了。