从man
页面,我看到:
- author =, - committer =
将提交输出限制为具有与指定模式(正则表达式)匹配的作者/提交者标题行的输出。有多个--author =,提交 选择其作者与任何给定模式匹配(类似于多个--committer =)。
它没有解释模式匹配的属性。经过一些实验,我发现它不仅可以匹配用户的名字,还可以匹配电子邮件,但是,我仍然想知道是否还有其他可以匹配的属性。
答案 0 :(得分:1)
如果在命令解释器中运行git cat-file -p HEAD
,您将看到实际提交的原始内容(它们通常非常短 - 四行标题数据,一个空行,然后是提交消息主题和体)。
其中一个元数据行是author
。另一个是committer
。 git log
选择器只需对这些行的名称和电子邮件部分执行regular expression匹配。
作为destoryer answered,还有其他选择器用于操作日期字段 - 这些选择器使用提交者日期并处理人类可读时间字符串转换和消息文本的时间。除此之外,git log
和git rev-list
(几乎是相同的程序 1 )有一个令人眼花缭乱的选择器数组,可以根据提交图更改哪些提交被选中,包括提交的外部名称(分支和标记名称等),和/或将附加到任何特定提交的源树与其父提交进行比较的结果。
1 "顶级" git log
和git rev-list
代码包含在同一源文件中,使用不同的入口点设置不同的初始选项,因此行为略有不同。 git log
命令旨在供人使用,因此以人类友好的 2 格式显示输出。 git rev-list
命令旨在供其他程序使用,默认只打印所选对象'哈希ID。通过制作"选择一些提交"作为一个可组合单元,Git为每个程序员提供了编写 new Git命令的能力,这些命令选择提交的灵活性与git log
一样灵活。
2 咳嗽好吧,也许和Git一样友善。 : - )
答案 1 :(得分:0)
除了作者和提交者,您可以按日期过滤(使用--since
/ --after
和--until
/ --before
),然后提交消息(--grep
)