有没有办法在Github项目的代码中进行grep的处理?
我可以提取源代码并在本地grep,但是我想知道是否可以通过Web界面或第三方替代方案。
有想法吗?
有没有办法在Github项目的代码中进行grep的处理?
我可以提取源代码并在本地grep,但是我想知道是否可以通过Web界面或第三方替代方案。
有想法吗?
Answers:
2013年1月更新:全新的搜索到来了!,基于elasticsearch.org:
在ruby回购中搜索stat将被表示为stat repo:ruby/ruby
,并且现在仅适用于TM。
(回购名称不区分大小写:test repo:wordpress/wordpress
返回与相同test repo:Wordpress/Wordpress
)
会给:
而且您还有许多其他的搜索示例,这些示例基于关注者,基于fork或...
2012年7月更新(过去的Lucene搜索和糟糕的代码索引,以及损坏的GUI,在此处存档):
现在,搜索(基于SolrQuerySyntax)更加宽松,Invalid search query. Try quoting it.
使用默认搜索选择器“ Everything” 时,令人恐惧的“ ”消失了:)
(我想Tim Pease可以做到所有,Tim Pease的目标之一是“破解所有GitHub属性的改进的搜索体验 ”,而我当时确实提到了这个Stack Overflow问题;))
这是ruby代码中grep的图示:它将查找存储库和用户,但也首先查找我想搜索的内容:代码!
前一期的初步答案和插图(2012年9月=> 2012年3月)
您可以使用高级搜索GitHub表单:
Code
,Repositories
或Users
从下拉菜单中选择例如,使用repo:username/repo-name
指令将搜索限制为代码存储库。
初始的“ Advanced Search
”页面包括以下部分:
代码搜索:
代码搜索将浏览GitHub上公开托管的所有代码。您还可以按以下条件过滤:
- 语言
language:
- 存储库名称(包括用户名)
repo:
- 文件路径
path:
因此,如果您选择“ Code
”搜索选择器,则对存储库中的文本进行查询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
“'type'一个” 下面的另一个组合框...)
因此,用户的体验通常如下:
Advanced Search
”,浏览过滤器的这些部分,然后注意到要使用的过滤器:“ repo:
”repo:jruby/jruby stat
”,但是使用默认的搜索选择器“ Everything
” FAIL
!(并且显示关联“ Selectors-Filters”的数组消失了)Repositories
”(“ Dah!我要在存储库中搜索...”)FAIL
!Users
无需选择上述选择器,就选择了下一个选择器(此处为“ ”),只是再尝试一下... FAIL
!因此,回顾一下,如果您想“复制Github项目代码中的某些内容”(例如OP Ben Humphreys),请不要忘记选择“ Code
”搜索选择器...
repo:"jruby/jruby" stat
repo:"jruby" stat
jruby: stat
没有尝试过任何一种方法
最近的私人存储库有一个搜索字段,用于搜索该存储库。
令人困惑的是,该功能似乎不适用于公共存储库。
更新
由于XHR问题和API更改,以下的书签小程序已被破坏。
幸运的是,Github现在有了“全新代码搜索”,可以出色地完成这项工作。
签出这个伏都教:Github代码搜索用户脚本。
按照那里的指示进行操作,或者,如果您不喜欢使用脚本和扩展名使浏览器膨胀,请使用我的书签用户脚本包:
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:页内,ajaxified代码搜索。
CAVEAT Github必须先索引存储库,然后才能对其进行搜索。
胡言乱语...
这是从带注释的ECMAScript 5.1规范存储库中进行的示例搜索:
虽然@VonC的答案适用于某些存储库,但不幸的是,您现在无法使用许多存储库。Github根本没有索引它们(正如@emddudley最初评论的那样)。他们没有在网站上的任何地方声明这一点,但是如果您需要支持,他们会告诉您:
来自:Tim Pease
我们已停止将新推送的代码添加到我们的代码搜索索引中。代码量已经超过了我们当前的搜索索引,我们正在努力转向更具扩展性的搜索体系结构。对不起,我很抱歉。对于这个新的搜索索引何时启动和运行,我们还没有估计,但是准备就绪时,将发布博客文章(https://github.com/blog)。
令人烦恼的是,除了缺少结果之外,没有其他方法可以告诉未对哪些存储库进行索引(这也可能来自错误的查询)。
除了等待他们写博客(或在此处观看)之外,没有其他方法可以跟踪此问题。
来自:Tim Pease
恐怕我们的问题跟踪器是内部的,但是一旦新的搜索索引启动并运行,我们就会通知您。
Google允许您搜索项目,但不能搜索代码:(
我使用免费的Sourcegraph Chrome扩展程序在Github存储库中搜索源代码 ...但是我下载了Chrome First,尽管我知道其他浏览器也支持它,例如-也许仅-Firefox。
我浏览了SourceForge的Chrome扩展文档,然后通过阅读一些Github的代码库搜索文档,也了解了我使用Github的搜索引擎本身搜索目录名称所需的内容。