searchGithub项目中的代码
有没有办法grep的东西在Github项目的代码?
我可以把源代码放在本地,然后grep它,但是我想知道是否可以通过Web界面或第三方的替代scheme。
想法?
2013年1月更新:一个全新的search已经到来! ,基于elasticsearch.org :
在ruby回购search统计将表示为stat repo:ruby/ruby
,现在只是工作TM 。
(回购名称不区分大小写: test repo:wordpress/wordpress
返回相同的test repo:Wordpress/Wordpress
)
会给:
而且你还有很多其他search的例子,基于追随者 ,或叉子 ,或…
2012年7月更新 (过去的Lucenesearch和糟糕的代码索引,加上破坏的GUI,保存在这里归档):
search(基于SolrQuerySyntax )现在更加宽容,使用默认searchselect器“Everything”时,可怕的“ Invalid search query. Try quoting it.
(我想我们可以比Tim Pease ,他的目标之一是“对所有GitHub属性进行改进的search体验 ”,而且当时我也提到了这个Stack Overflow问题 ;))
下面是一个ruby代码中的grep的例子:它将寻找回购和用户,但也为我想search的第一个地方:代码!
前期问题的初步回答和说明(2012年9月=> 2012年3月)
您可以使用高级searchGitHub表单 :
- 从下拉列表中select
Code
,Repositories
或Users
- 使用为该searchtypes列出的相应前缀 。
例如,使用repo:username/repo-name
指令将search限制在代码库中。
最初的“ Advanced Search
”页面包括以下部分:
代码search:
代码search将查看所有公开托pipe在GitHub上的代码。 您也可以按照以下方式过滤
- 语言
language:
- 存储库名称(包括用户名)
repo:
- 文件path
path:
所以,如果您select“ Code
”searchselect器,那么您的查询在回购中的文本grepping将工作:
GitHub 非常 无用的是:
- 如果你忘记把正确的searchselect器(这里是“
Code
”),你会得到一个错误信息:
“Invalid search query. Try quoting it.
-
错误信息并没有帮助你。
没有任何“quoting it
”会使你摆脱这个错误。 -
一旦你得到这个错误信息,你不会得到提醒你searchselect器 (“
Repositories
”,“Users
”或“Language
”)和(右)searchfilter (这里“repo:
” )。
你做的任何进一步的尝试都不会显示那些关联(select器filter)。 只有你看到的错误信息…
取回这些数组的唯一方法是单击“Advance Search
”图标:
-
对于所有的searchfilter来说,默认的“
Everything
”searchselect器实际上是错误的 ! 除了“language:
”…
(你可以想象/假定“Everything
”会帮助你selectsearchfilter“repo:
”实际工作的任何一个searchselect器,但这样做太简单了) -
您无法单独通过“
Advance Search
”字段指定所需的searchselect器!
(但你可以为“language:
”,即使“Search Language
”是另一个combobox“Search for
”types“一个…”
所以,用户的体验通常如下:
- 你点击“
Advanced Search
”,浏览filter的那些部分,并注意你想要使用的一个:“repo:
” - 你做了第一个高级search“
repo:jruby/jruby stat
”,但是默认searchselect器“Everything
”
=>FAIL
! (和显示关联“select器 – filter”的数组已经消失 ) - 您注意到“search”select器thingy,select第一个select“
Repositories
”(“Dah!我想在存储库内search…”)
=>FAIL
! - 沮丧,你select下一个select器的select(这里,“
Users
”),甚至没有看到所述select器,只是给它一个尝试…
=>FAIL
! - “搞砸了,GitHubsearch已经结束了 !我要离开这里了!”
…
(GitHub高级search实际上并没有被破坏,只有他们的GUI是…)
所以,回顾一下,如果你想“在Github项目的代码中寻找东西”,就像OP Humphreys一样 ,不要忘记select“ Code
”searchselect器…
最近的私人存储库有一个search领域,通过回购search。
但是,看起来这个function对公共仓库是不可用的。
UPDATE
由于XHR问题和API更改,以下小书签被破坏。
幸好Github现在有一个“全新的代码search” ,这个工作非常出色。
签出这个巫术: Github代码searchuserscript 。
按照那里的指示,或者如果你讨厌使用脚本和扩展名来浏览你的浏览器,请使用我的书签化的脚本包:
javascript:(function(){var s='https://github.com/skratchdot/github-code-search.user.js/raw/master/github-code-search.user.js',t='text/javascript',d=document,n=navigator,e;(e=d.createElement('script')).src=s;e.type=t;d.getElementsByTagName('head')[0].appendChild(e)})();doIt('');void('');
将上述来源保存为新书签的url。 浏览任何Github的回购,点击书签,然后bam : 页面内的Ajax代码search 。
CAVEAT Github必须索引一个repo,然后才能search它。
胡言乱语…
以下是来自注释的ECMAScript 5.1规范存储库的示例search:
虽然@ VonC的答案适用于某些存储库,不幸的是,许多存储库,你现在不能。 Github根本就没有对它们进行索引(正如@emddudley最初所评论的那样)。 他们没有在他们的网站上的任何地方说过,但他们会告诉你,如果你要求支持:
来自:Tim Pease
我们已经停止将新推入的代码添加到我们的codesearch索引中。 代码量超过了我们当前的search索引,而我们正在努力转向更具扩展性的search架构。 我为这个烦恼感到抱歉。 我们没有估计这个新的search索引何时开始运行,但是当它准备好时,博客文章将被发布(https://github.com/blog)。;
令人烦恼的是,除了缺less结果(也可能来自于错误的查询)之外,没有办法知道哪些存储库没有被索引。
除了等待他们写博客(或者在这里观看)之外,没有办法跟踪这个问题。
来自:Tim Pease
恐怕我们的问题跟踪器是内部的,但是一旦新的search索引启动并运行,我们就可以通知您。
谷歌允许你在项目中search,但不是代码:(
网站:https://github.com/CreateJS/EaselJStesting