dsl*_*dsl 203
You used to be able to do this, but Github removed this feature at some point mid-2013. To achieve this locally, you can do:
git log -g --grep=STRING
Run Code Online (Sandbox Code Playgroud)
(Use the -g flag if you want to search other branches and dangling commits.)
-g, --walk-reflogs
Instead of walking the commit ancestry chain, walk reflog entries from
the most recent one to older ones.
Run Code Online (Sandbox Code Playgroud)
okt*_*pus 133
更新(2017/01/05):
Github发布了一个更新,允许您现在在其UI中的提交消息中进行搜索.有关更多信息,请参阅博客文章
我有同样的问题,昨天联系了某人@Github:
由于他们将搜索引擎切换到ElasticSearch,因此无法使用Github UI搜索提交消息.但该功能是在团队的愿望清单上.
不幸的是,目前还没有该功能的发布日期.
小智 57
简短的回答是,您无法直接在github.com网站上搜索提交消息.目前我们建议git grep本线程上的其他人提出本地解决方案.
在某个时间点,GitHub确实git grep为单个存储库提供了一个样式搜索提交消息.不幸的是,这种方法暴露了拒绝服务,可能导致文件服务器无法访问.出于这个原因,我们删除了git grep搜索.
目前的封套估计值使得GitHub中的提交数量大约在800亿大关.虽然谷歌工程师在我们背后嘲笑,但这是存储在ElasticSearch中的相当多的文档.我们很乐意使这个数据集可搜索,但它不是一个简单的项目.
Ric*_* II 45
这已从GitHub中删除.我用:
$git log --all --oneline | grep "search query"
Run Code Online (Sandbox Code Playgroud)

您也可以按作者过滤:
$git log --all --oneline --author=rickhanlonii | grep "search query"
Run Code Online (Sandbox Code Playgroud)
tec*_*rus 19
你可以使用google抓取的repos(结果从repo到repo不同)来做到这一点
搜索所有已爬行存储库的所有分支以获取"更改许可证"
"更改许可证"网站:https://github.com/*/*/commits
搜索所有已爬行存储库的主分支以获取"更改许可证"
"更改许可证"网站:https://github.com/*/*/commits/master
搜索所有已抓取的Twitter回购的主分支以获取"更改许可"
"更改许可证"网站:https://github.com/twitter/*/commits/master
在twitter/some_project repo的所有分支机构中搜索"change license"
Von*_*onC 14
您现在可以搜索提交消息!(仍然只在主分支中)
2015年2月:考虑到目前基于Elasticsearch的搜索基础架构(2013年1月推出),不确定是否可行.
作为回答"从可靠和/或官方消息来源",这里是与GitHub负责在GitHub上引入Elasticsearch的人员进行的访谈(2013年8月)
Tim Pease:我们有两种文档类型:一种是源代码文件,另一种是存储库.git的工作方式是你有提交,每个提交都有一个分支.存储库文档会跟踪已编制索引的特定存储库的最新提交.当用户将新提交推送到Github时,我们从elasticsearch中提取该存储库文档.然后我们看到最近的索引提交,然后我们得到一个列表,列出了在最近的推送和我们之前索引的内容之间已经修改,添加或删除的所有文件.然后我们可以继续更新那些已更改的文档.每次有人推送时,我们不必重新索引整个源代码树.
Andrew Cholakian:所以,你们只是索引,我假设是主分支.
蒂姆皮斯:正确.它只是你要进入那里的主分支的负责人,但仍然有很多数据,20亿个文件,30太字节.
Andrew Cholakian:这太棒了.
[...]
Run Code Online (Sandbox Code Playgroud)
Tim Pease:推送索引源代码,这是一个自我修复的过程.
我们有一个存储库文档,它跟踪最后一个索引提交.如果我们错过了,恰好错过了三次提交,那些工作失败,下一次提交,我们仍然在查看我们索引的上一次提交与我们通过这次新推送看到的提交之间的差异.
您执行了操作git diff,即可获得已更新,删除或添加的所有文件.你可以说,"好的,我们需要删除这些文件.我们需要添加这些文件,以及所有这些."它是自我修复的,这是我们采用几乎所有架构的方法.
这意味着并非所有回购的所有分支都将使用该方法编入索引.
目前无法使用全局提交邮件搜索.
而蒂姆·皮斯本人确认 提交的信息不被索引.
请注意,获取本地克隆的自己的elasticsearch本地索引并非不可能:请参阅" 使用ElasticSearch搜索git存储库 "
但对于特定的回购,最容易克隆它并做一个:
git log --all --grep='my search'
Run Code Online (Sandbox Code Playgroud)
(" 如何通过提交消息搜索Git存储库? "中的更多选项)
由于这已从Github中删除,我一直在使用gitkLinux来执行此操作.
从终端转到您的存储库并输入 gitk
在gui的中间,theres是一个搜索框.它提供了很多过滤器:

范围 - 包含,触摸路径,添加/删除字符串,更改行匹配
匹配类型 - Exact/IgnCase/Regexp
搜索字段 - 所有字段/标题/评论/提交者
结合其他答案,使用 Github 上的高级搜索似乎是最简单的。它基本上是一个搜索字符串生成器。 https://github.com/search/advanced
例如,我想查找 Autodesk/maya-usd 中包含“USD”的所有提交

请注意,您可能会收到一条消息(在代码搜索视图中),内容为“Your search did not match any code. However we found 1 commit that matched your search query. Alternatively try one of the tips below.请注意,‘1 提交是可单击的链接”:
或者,只需单击左侧的“提交”,如上所示。