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

此版本的 GitHub Enterprise 已停止服务 2020-11-12. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

搜索代码

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

本文内容

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

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

Tips:

  • 本文章包含在 GitHub.com 网站上的示例搜索,但您可以在 your GitHub Enterprise Server instance 上使用相同的搜索过滤器。
  • 有关可以添加到任何搜索限定符以进一步改善结果的搜索语法列表,请参阅“了解搜索语法”。
  • 对多个字词的搜索词使用引号。 例如,如果要搜索具有标签 "In progress" 的议题,可搜索 label:"in progress"。 搜索不区分大小写。

代码搜索的注意事项

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

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

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

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

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

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

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

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

按文件位置搜索

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

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

按语言搜索

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

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

按文件大小搜索

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

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

按文件名搜索

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

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

按文件扩展名搜索

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

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

延伸阅读