搜索代码
您可以在 GitHub Enterprise 上搜索代码,并使用这些代码搜索限定符的任意组合缩小结果范围。
您可以在所有 GitHub Enterprise 内全局搜索代码,也可以在特定仓库或组织内搜索代码。 要在所有公共仓库内搜索代码,您必须登录到 GitHub Enterprise 帐户。 更多信息请参阅“关于在 GitHub 上搜索”。
您只能使用这些代码搜索限定符搜索代码。 搜索代码时,专用于仓库、用户或提交的搜索限定符将不起作用。
提示:
- 本文章包含在 GitHub.com 网站上的示例搜索,但您可以在 您的 GitHub Enterprise Server 实例 上使用相同的搜索过滤器。
- 有关可以添加到任何搜索限定符以进一步改善结果的搜索语法列表,请参阅“了解搜索语法”。
- 对多个字词的搜索词使用引号。 例如,如果要搜索具有标签 "In progress" 的议题,可搜索
label:"in progress"
。 搜索不区分大小写。
本文内容:
代码搜索的注意事项
由于搜索代码的复杂性,执行搜索的方式有一些限制:
- 必须登录才能跨所有公共仓库搜索代码。
- 复刻中的代码仅当复刻的星号超过父级仓库时可搜索。 星号少于父仓库的复刻不为代码搜索编索引。 要在搜索结果中包括星号比其父项多的复刻,您需要将
fork:true
或fork:only
添加到查询。 更多信息请参阅“在复刻中搜索”。 - 只有默认分支编索引进行代码搜索。 在大多数情况下,这将成为
master
分支。* 只有小于 5 MB 的文件可搜索。 - 只有每个文件的前 500 KB 可搜索。
- 只有少于 500,000 个文件的仓库可搜索。
- 登录的用户可以搜索所有公共仓库。 匿名搜索必须包括对
org:
、user:
或repo:
的限制。 - 除了
filename
搜索以外,搜索源代码时必须始终包括至少一个搜索词。 例如,搜索language:javascript
无效,而搜索amazing language:javascript
有效。 - 搜索结果最多可显示同一文件的两个分段,但文件内可能有更多结果。
- 您无法使用以下通配符作为搜索查询的一部分:
. , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]
. 搜索只会忽略这些符号。
按文件内容或文件路径搜索
使用 in
限定符,您可以将搜索限制为源代码文件的内容、文件路径或两者。 如果省略此限定符,则只搜索文件内容。
限定符 | 示例 |
---|---|
in:file |
octocat in:file 匹配文件内容中出现 "octocat" 的代码。 |
in:path |
octocat in:path 匹配文件路径中出现 "octocat" 的代码。 |
octocat in:file,path 匹配文件内容或文件路径中出现 "octocat" 的代码。 |
在用户或组织的仓库内搜索
要在特定用户或组织拥有的所有仓库中搜索代码,您可以使用 user
或 org
限定符。 要在特定仓库中搜索代码,您可以使用 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 匹配大于 200 KB、以 .css 结尾且含有 "icon" 字样的文件。 |