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


当前回答

在Github上使用高级搜索和其他答案的组合似乎是最简单的。它基本上是一个搜索字符串构建器。 https://github.com/search/advanced

例如,我想找到Autodesk/maya-usd中包含“USD”的所有提交

然后在搜索结果中可以从左边的列表中选择commit:

其他回答

截至2019年年中

在左上方的搜索框中输入您的查询 回车 点击“提交”

截图:

简单的回答是,你不能直接在github.com网站上搜索提交消息。目前,我们推荐这个线程中其他人提出的本地git grep解决方案。

在某个时间点上,GitHub确实为单个存储库提供了git grep风格的提交消息搜索。不幸的是,这种方法暴露了拒绝服务,可能导致文件服务器不可访问。出于这个原因,我们删除了git grep搜索。

目前粗略估计,GitHub的提交次数大约在800亿次左右。尽管谷歌的工程师们在背后嘲笑我们,但这在ElasticSearch中存储的文档数量相当大。我们很想让这个数据集可以搜索,但这不是一个微不足道的项目。

你过去可以这样做,但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.

这在Eclipse中工作得很好,直到GitHub添加了这个功能:

EGit/用户指南,搜索提交

更新(2017/01/05):

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


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

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

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