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的第一个地方:代码!

GitHub更宽松的搜索结果


前期问题的初步回答和说明(2012年9月=> 2012年3月)

您可以使用高级searchGitHub表单 :

  • 从下拉列表中selectCodeRepositoriesUsers
  • 使用为该searchtypes列出相应前缀

例如,使用repo:username/repo-name指令将search限制在代码库中。
最初的“ Advanced Search ”页面包括以下部分:

代码search:

代码search将查看所有公开托pipe在GitHub上的代码。 您也可以按照以下方式过滤

  • 语言language:
  • 存储库名称(包括用户名) repo:
  • 文件pathpath:

所以,如果您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 ”图标:

高级搜索GitHub上的图标

  • 对于所有的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它。

在Bookmarklet之前

胡言乱语…

之后 - 在最左边的标签之后查看第二个菜单栏:文件,提交,分支...

以下是来自注释的ECMAScript 5.1规范存储库的示例search:

在注释的ECMAScript 5.1规范库中搜索示例

虽然@ VonC的答案适用于某些存储库,不幸的是,许多存储库,你现在不能。 Github根本就没有对它们进行索引(正如@emddudley最初所评论的那样)。 他们没有在他们的网站上的任何地方说过,但他们会告诉你,如果你要求支持:

来自:Tim Pease
我们已经停止将新推入的代码添加到我们的codesearch索引中。 代码量超过了我们当前的search索引,而我们正在努力转向更具扩展性的search架构。 我为这个烦恼感到抱歉。 我们没有估计这个新的search索引何时开始运行,但是当它准备好时,博客文章将被发布(https://github.com/blog)。;

令人烦恼的是,除了缺less结果(也可能来自于错误的查询)之外,没有办法知道哪些存储库没有被索引。

除了等待他们写博客(或者在这里观看)之外,没有办法跟踪这个问题。

来自:Tim Pease
恐怕我们的问题跟踪器是内部的,但是一旦新的search索引启动并运行,我们就可以通知您。

谷歌允许你在项目中search,但不是代码:(

网站:https://github.com/CreateJS/EaselJStesting