codecamp

GitHub 搜索代码

您可以在 GitHub 上搜索代码,并使用这些代码搜索限定符的任意组合缩小结果范围。

您可以在所有 GitHub 内全局搜索代码,也可以在特定仓库或组织内搜索代码。 要在所有公共仓库内搜索代码,您必须登录到 GitHub 帐户。 更多信息请参阅“关于在 GitHub 上搜索”。

您只能使用这些代码搜索限定符搜索代码。 搜索代码时,专用于仓库、用户或提交的搜索限定符将不起作用。

提示:

- 有关可以添加到任何搜索限定符以进一步改善结果的搜索语法列表,请参阅“了解搜索语法”。
- 对多个字词的搜索词使用引号。 例如,如果要搜索具有标签 "In progress" 的议题,可搜索 label:"in progress"。 搜索不区分大小写。

代码搜索的注意事项

由于搜索代码的复杂性,执行搜索的方式有一些限制:

  • 必须登录才能跨所有公共仓库搜索代码。
  • 复刻中的代码仅当复刻的星号超过父级仓库时可搜索。 星号少于父仓库的复刻为代码搜索编索引。 要在搜索结果中包括星号比其父项多的复刻,您需要将 fork:truefork:only 添加到查询。 更多信息请参阅“在复刻中搜索”。
  • 只有默认分支编索引进行代码搜索。 在大多数情况下,这将成为 master 分支。
  • 只有小于 384 KB 的文件可搜索。
  • 只有少于 500,000 个文件的仓库可搜索。
  • 登录的用户可以搜索所有公共仓库。
  • 除了 filename 搜索以外,搜索源代码时必须始终包括至少一个搜索词。 例如,搜索 language:javascript 无效,而搜索 amazing language:javascript 有效。
  • 搜索结果最多可显示同一文件的两个分段,但文件内可能有更多结果。
  • 您无法使用以下通配符作为搜索查询的一部分:. , : ; / \ ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]`. 搜索只会忽略这些符号。

按文件内容或文件路径搜索

使用 in 限定符,您可以将搜索限制为源代码文件的内容、文件路径或两者。 如果省略此限定符,则只搜索文件内容。

限定符 示例
in:file octocat in:file 匹配文件内容中出现 "octocat" 的代码。
in:path octocat in:path 匹配文件路径中出现 "octocat" 的代码。
octocat in:file,path 匹配文件内容或文件路径中出现 "octocat" 的代码。

在用户或组织的仓库内搜索

要在特定用户或组织拥有的所有仓库中搜索代码,您可以使用 userorg 限定符。 要在特定仓库中搜索代码,您可以使用 repo 限定符。

限定符 示例
user:*USERNAME* user:defunkt extension:rb 匹配来自 @defunkt、以 .rb 结尾的代码。
org:*ORGNAME* org:github extension:js 匹配来自 GitHub、以 .js 结尾的代码。
repo:*USERNAME/REPOSITORY* repo:mozilla/shumway extension:as 匹配来自 @mozilla 的 shumway 项目、以 .as 结尾的代码。

按文件位置搜索

您可使用 path 限定符搜索仓库中特定位置显示的源代码。 使用 path:/ 可搜索位于仓库根目录级别的文件。 或者,指定目录名称或目录路径以搜索位于该命令或其任何子目录中的文件。

限定符 示例
path:/ octocat filename:readme path:/ 匹配位于仓库根目录级别且含有 "octocat" 字样的 readme 文件。
path:*DIRECTORY* form path:cgi-bin language:perl 匹配位于 cgi-bin 目录或其任何子目录中且含有 "form" 字样的 Perl 文件。
path:*PATH/TO/DIRECTORY* console path:app/public language:javascript 匹配 app/public 目录或其任何子目录(即使其位于 app/public/js/form-validators 中)中且含有 "console" 字样的 JavaScript 文件。

按语言搜索

您可以基于所编写的语言搜索代码。

限定符 示例
language:*LANGUAGE* element language:xml size:100 匹配标记为 XML 且恰好有 100 个字节的并含有 "element" 字样的代码。
display language:scss 匹配标记为 SCSS 且含有 "display" 字样的代码。
org:mozilla language:markdown 匹配标记为 Markdown 且来自所有 @mozilla 仓库的代码。

按文件大小搜索

您可以使用 size 限定符基于代码所在文件的大小搜索源代码。 size 限定符使用大于、小于和范围限定符基于在其中找到代码的文件的字节大小来过滤结果。

限定符 示例
size:*n* function size:>10000 language:python 匹配含有 "function" 字样、以 Python 编写、位于大于 10 KB 的文件中的代码。

按文件名搜索

filename 限定符匹配具有特定文件名的代码文件。 您还可以使用文件查找器在仓库中查找文件。 更多信息请参阅“在 GitHub 上查找文件”。

限定符 示例
filename:*FILENAME* filename:linguist 匹配名为 "linguist" 的文件。
filename:.vimrc commands 匹配含有 "commands" 字样的 .vimrc 文件。
filename:test_helper path:test language:ruby 匹配 test 目录内名为 test_helper 的 Ruby 文件。

按文件扩展名搜索

extension 限定符匹配具有特定文件扩展名的代码文件。

限定符 示例
extension:*EXTENSION* form path:cgi-bin extension:pm 匹配含有 "form" 字样、位于 cgi-bin 下且具有 .pm 文件扩展名的代码。
icon size:>200000 extension:css 匹配大于 200 KB、以 .css 结尾且含有 "icon" 字样的文件。

延伸阅读

GitHub 搜索主题
GitHub 搜索提交
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

GitHub 身份验证

在 GitHub 上管理订阅和通知

在 GitHub 上管理活动的订阅

GitHub 组织和团队

GitHub 管理对组织仓库的 Git 访问

GitHub 计费和付款

GitHub 使用议题和拉取请求进行协作

GitHub 在具有代码质量功能的仓库上进行协作

管理在 GitHub 上的工作

GitHub 建立强大的社区

GitHub 管理仓库

GitHub 自定义 GitHub 工作流程

在 GitHub Marketplace 中购买并安装应用程序

通过 GitHub Jobs 寻找人才

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }