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


当前回答

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

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

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

其他回答

从搜索代码的帮助页面来看,这似乎还不可能。

您可以在存储库中搜索文本,包括选择要搜索的文件或路径的能力,但不能指定要在提交中搜索。

也许可以向他们提出这个建议?

你过去可以这样做,但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搜索提交消息。但是这个功能在团队的愿望清单上。

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

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

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

“变更许可证”网站: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