有没有办法在 Github 项目代码中查找某些内容?
我可以提取源代码并在本地进行 grep,但我想知道是否可以通过 Web 界面或 3rd 方替代方案。
想法?
最佳答案
2013 年 1 月更新: brand new search has arrived! , 基于 elasticsearch.org :
在 ruby 存储库中搜索 stat 将表示为 stat repo:ruby/ruby
,现在就可以工作了。
( repo 名称不区分大小写: test repo:wordpress/wordpress
返回与 test repo:Wordpress/Wordpress
相同)
会给:
您还有许多其他的搜索示例,基于 on followers , 或 on forks , 要么...
2012 年 7 月更新 (旧时代的 Lucene 搜索和糟糕的代码索引,加上损坏的 GUI,保存在这里以供存档):
搜索(基于 SolrQuerySyntax )现在更加宽松,使用默认搜索选择器“Everything”时,可怕的“Invalid search query. Try quoting it.
”消失了:)
(我想我们都可以比 Tim Pease ,当时他的目标之一是 "hacking on improved search experiences for all GitHub properties 和 I did mention this Stack Overflow question ;))
这是 ruby 代码中的 grep 的说明:它将查找存储库和用户,但也会查找我首先想要搜索的内容:代码!
前一期的初步回答和说明(2012 年 9 月 => 2012 年 3 月)
您可以使用 advanced search GitHub form :
Code
, Repositories
或 Users
从下 pull 菜单和 例如,使用
repo:username/repo-name
指令将搜索限制为 代码存储库。最初的“
Advanced Search
”页面包括以下部分:Code Search:
The Code search will look through all of the code publicly hosted on GitHub. You can also filter by :
- the language
language:
- the repository name (including the username)
repo:
- the file path
path:
因此,如果您选择“
Code
”搜索选择器,那么您对 repo 中文本的查询 grepping 将起作用:什么不可思议无用 来自 GitHub 的是:
Code
”),您将收到一条错误消息:"
Invalid search query. Try quoting it.
"再多的“
quoting it
”都无法让您摆脱这个错误。 Repositories
”、“Users
”或“Language
”)和(右)搜索过滤器之间正确关联的部分(此处为“repo:
”)。您所做的任何进一步尝试都不会显示这些关联(选择器-过滤器)。只有您在上面看到的错误消息...
取回这些数组的唯一方法是单击“
Advance Search
”图标:Everything
”搜索选择器,这是默认的,实际上是所有搜索过滤器的错误选择!除了“language:
”...(你可以想象/假设“
Everything
”会帮助你选择与搜索过滤器“repo:
”一起工作的任何搜索选择器,但不是。那太容易了)Advance Search
”字段指定您想要的搜索选择器!(但您可以输入“
language:
”,即使“Search Language
”是“Search for
”下方的另一个组合框,“输入”...)所以,用户的体验通常是这样的:
Advanced Search
”,浏览过滤器的那些部分,并注意到你想使用的一个:“repo:
”repo:jruby/jruby stat
”,但使用默认搜索选择器“Everything
”=>
FAIL
! (并且显示关联“选择器-过滤器”的数组是 消失了 )Repositories
”(“Dah!我想在存储库中搜索...”)=>
FAIL
! Users
”),甚至没有看那个选择器,只是再试一次......=>
FAIL
! ...
(GitHub 高级搜索实际上并没有被破坏。只有他们的 GUI 是...)
因此,回顾一下,如果您想“在 Github 项目代码中查找某些内容”,如 OP Ben Humphreys ,不要忘记选择“
Code
”搜索选择器...
关于git - 在 Github 项目中搜索代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3616221/