如何使用git log命令
来自百问网嵌入式Linux wiki
目录
前言
- 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这几个参数,几乎能满足大部分检索需求了。