“How to use the git log command”的版本间的差异
来自百问网嵌入式Linux wiki
Zhouyuebiao(讨论 | 贡献) (创建页面,内容为“{{DISPLAYTITLE:如何使用git log命令}} Category:How_toCategory:Git”) |
Zhouyuebiao(讨论 | 贡献) |
||
第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这几个参数,几乎能满足大部分检索需求了。