git log
是 Git 版本控制系统中的一个命令,用于展示一个或多个分支的提交历史记录。
当你在 git log
命令后面添加 --pretty=oneline
选项时,它会以单行的形式显示提交历史。这意味着每个提交将会在一行内显示,而不是默认的多行显示格式。
具体来说,--pretty=oneline
选项会导致每条日志记录只显示提交的哈希值(SHA-1校验和)和提交信息(commit message)的第一行。这种格式对于快速浏览大量的提交非常有用,因为它提供了一个紧凑的视图。
下面是 git log --pretty=oneline
输出示例的一个简化版本:
a47a6f9c0d... Fix bug in the application logic
9b39a7e8e7... Add new feature for user profiles
5c3ae45b8d... Update documentation
...
这里,每行的开头是该提交的唯一哈希值,后面跟着的是该提交的信息摘要。
请注意,Git log
命令还有其他 --pretty
格式选项,例如 short
, full
, fuller
, 和 format
(后面可以跟自定义格式),可以根据需要选择使用。
Git log
命令的 --pretty
选项允许用户自定义提交历史的输出格式。下面是一些常用的 --pretty
参数及其表示意义:
short
格式会显示较为简洁的提交信息,包括了提交的哈希值和作者的名字以及电子邮件地址,还有提交日期和提交信息摘要。
commit 9b39a7e8e7...
Author: Alice <alice@example.com>
Date: Mon Feb 17 21:52:45 2020 +0000
Add new feature for user profiles
medium
是 Git log
的默认输出格式,提供了比 short
更完整的信息,但少于 full
和 fuller
。它包括提交哈希值、作者信息、日期、提交信息摘要和差异统计数据。
commit 9b39a7e8e7...
Author: Alice <alice@example.com>
Date: Mon Feb 17 21:52:45 2020 +0000
Add new feature for user profiles
1 file changed, 26 insertions(+), 1 deletion(-)
full
格式提供了几乎所有可用的提交信息,其中包括两次信息:一次是针对实际的提交作者(可能是编写代码的人),另一次是针对之后可能修改或应用该提交的人(可能是合并分支的人)。
commit 9b39a7e8e7...
Author: Alice <alice@example.com>
Commit: Bob <bob@example.com>
Add new feature for user profiles
fuller
格式与 full
类似,不过它还包括了更详细的日期信息,即显示了作者日期和提交日期。
commit 9b39a7e8e7...
Author: Alice <alice@example.com>
AuthorDate: Mon Feb 17 21:52:45 2020 +0000
Commit: Bob <bob@example.com>
CommitDate: Tue Feb 18 10:32:58 2020 +0000
Add new feature for user profiles
format
参数是一个非常灵活的选项,允许你使用自定义的格式字符串来指定输出的内容。例如,可以只输出提交哈希值和提交信息:
git log --pretty=format:"%h - %s"
这会输出类似以下的列表:
a47a6f9 - Fix bug in the application logic
9b39a7e - Add new feature for user profiles
5c3ae45 - Update documentation
其中 %h
表示缩短的提交哈希值,%s
表示提交信息的主题。
这只是 format
选项能够使用的一小部分占位符示例。Git 提供了很多其他的占位符,可以显示各种提交属性,比如 %an
(作者名字)、%ae
(作者电子邮件)、%cn
(提交者名字)、%ce
(提交者电子邮件),等等。
通过组合这些 --pretty
选项,你可以根据需要生成清晰且有用的提交历史输出。