不是在Git存储库中,而是在GitHub中——我如何搜索特定存储库/分支的提交消息?


当前回答

到2017年,GitHub本身就包含了这个功能。

他们使用的示例搜索是repo:torvalds/linux merge:false加密策略

GIF图片来自https://github.com/blog/2299-search-commit-messages

其他回答

你过去可以这样做,但GitHub在2013年年中的某个时候删除了这个功能。要在本地实现这一点,您可以这样做:

git log -g --grep=STRING

(如果您想搜索其他分支和悬空提交,请使用-g标志。)

-g, --walk-reflogs
    Instead of walking the commit ancestry chain, walk reflog entries from
    the most recent one to older ones.

更新(2017/01/05):

GitHub发布了一个更新,允许你现在从他们的UI中搜索提交消息。更多信息请参见博客文章。


我也有同样的问题,昨天联系了GitHub的人:

由于他们将搜索引擎切换到Elasticsearch,因此无法使用GitHub UI搜索提交消息。但是这个功能在团队的愿望清单上。

不幸的是,该函数目前还没有发布日期。

到2017年,GitHub本身就包含了这个功能。

他们使用的示例搜索是repo:torvalds/linux merge:false加密策略

GIF图片来自https://github.com/blog/2299-search-commit-messages

由于这已经从GitHub中删除,我一直在Linux上使用gitk来做这件事。

从终端转到存储库并键入gitk。

在GUI的中间,有一个搜索框。它提供了一个很好的过滤器:

范围包含,触摸路径,添加/删除字符串,改变行匹配

匹配类型—Exact/IgnCase/Regexp

搜索字段-所有字段/标题/评论/提交者

您可以对谷歌爬取的存储库执行此操作(结果因存储库而异)。

搜索所有爬取存储库的所有分支,查找“更改许可”

“变更许可证”网站:https://github.com/*/*/commits

搜索所有爬虫库的主分支“change license”:

“变更许可证”网站:https://github.com/*/*/commits/master

搜索所有爬过的twitter存储库的主分支“更改许可证”

“变更许可证”网站:https://github.com/twitter/*/commits/master

搜索twitter/some_project存储库的所有分支,查找“change license”

“变更许可证”网站:https://github.com/twitter/some_project/commits