我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们
文章版本: GitHub.com

搜索代码

您可以在 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" 的代码。

Search by the file contents for exact matches

代码搜索中的精确匹配在测试阶段,只面向 GitHub 上有限的用户和仓库,可能会有更改。

您可以搜索包含任何字母、数字和符号组合的精确匹配代码。 For more information, see "Searching code for exact matches."

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

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

限定符 示例
user:USERNAME user:defunkt extension:rb matches code from @defunkt that ends in .rb.
org:ORGNAME org:github extension:js matches code from GitHub that ends in .js.
repo:USERNAME/REPOSITORY repo:mozilla/shumway extension:as matches code from @mozilla's shumway project that ends in .as.

按文件位置搜索

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

限定符 示例
path:/ octocat filename:readme path:/ matches readme files with the word "octocat" that are located at the root level of a repository.
path:DIRECTORY form path:cgi-bin language:perl matches Perl files with the word "form" in a cgi-bin directory, or in any of its subdirectories.
path:PATH/TO/DIRECTORY console path:app/public language:javascript matches JavaScript files with the word "console" in an app/public directory, or in any of its subdirectories (even if they reside in app/public/js/form-validators).

按语言搜索

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

限定符 示例
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 matches .vimrc files with the word "commands."
filename:test_helper path:test language:ruby matches Ruby files named test_helper within the test directory.

按文件扩展名搜索

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

限定符 示例
extension:EXTENSION form path:cgi-bin extension:pm matches code with the word "form," under cgi-bin, with the .pm file extension.
icon size:>200000 extension:css matches files larger than 200 KB that end in .css and have the word "icon."

延伸阅读

问问别人

找不到要找的内容?

联系我们