如何查询git提交历史记录?

时间:2018-03-20 19:14:43

标签: git

所以也许我问这个问题是错误的,但我找不到有关如何做到这一点的信息。我有一个很大的git存储库,在过去两年中很多人提交了许多提交。有没有人有办法找出我如何查询git提交历史记录?我是一个SQL人员,所以我习惯使用SQL查询数据库(甚至grep或查找我的文件系统)。

这些是我想要运行的示例查询:

  • 其消息包含文本“xyz”
  • 的所有提交
  • 所有提交消息为LIKE'%xyz'
  • 的提交
  • 所有提交均由用户person@company.com
  • 完成
  • 提交1234abcd
  • 的所有提交
  • 日期1和日期2之间的所有提交
  • 和/或上述
  • 的组合

如果我甚至可以导出git日志,那么我可以使用不同的工具来获取大部分信息(尽管分支的祖先查询/查询可能很困难)。有时候,只需转到命令行并快速查询就可以尝试从一段时间后找到提交。

1 个答案:

答案 0 :(得分:3)

您可以 tot() { return this.products .map(pro => pro.p_unit_price * pro.p_quantity) .reduce((a, b) => a + b, 0); } 使用各种开关,如git-log docs所述:

其消息包含文本“xyz”的所有提交将是:

git log
  

- 的grep =<模式>将提交输出限制为具有与指定模式(正则表达式)匹配的日志消息的输出。随着更多   比一个--grep =< pattern>,提交其消息匹配任何一个   选择给定的模式(但参见--all-match)。

用户person@company.com完成的所有提交将是:

git log --grep=xyz
  

- 作者=<模式>   --committer =<模式>将提交输出限制为具有与指定模式匹配的作者/提交者标题行的输出   (正则表达式)。有多个--author =< pattern>,提交   选择其作者与任何给定模式匹配(类似地   for multiple --committer =< pattern>)。

等等基于git-log docs