可以跨所有 GitHub 执行全局搜索,或将搜索范围限于特定存储库或组织。 有关详细信息,请参阅 AUTOTITLE。
您只能使用这些代码搜索限定符搜索代码。 搜索代码时,专用于仓库、用户或提交的搜索限定符将不起作用。
提示
- 本文包含 GitHub.com 网站上示例搜索的链接,但你可以在任何 平台中使用相同的搜索筛选器。 在链接的示例搜索中,将
github.com替换为 GitHub 平台的主机名。 - 有关可以添加到任何搜索限定符以进一步改善结果的搜索语法列表,请参阅 了解搜索语法。
- 对多个字词的搜索词使用引号。 例如,如果要搜索具有标签“In progress”的问题,可搜索
label:"in progress"。 搜索不区分大小写。
代码搜索的注意事项
由于搜索代码的复杂性,执行搜索的方式有一些限制:
- 必须登录到 GitHub 上的个人帐户才能跨所有公共存储库搜索代码。
- 仅当分叉库的星数超过父级存储库,且分叉库在创建后至少有一个推送提交,分叉库中的代码才可被搜索。 如果分叉的星少于父级存储库,或者无提交,则分叉没有针对代码搜索编制索引。 若要在搜索结果中包含星数多于其父级的分叉,或者有至少一个推送提交,必须将 或 添加到查询中。 有关详细信息,请参阅“AUTOTITLE”。
- 只有 默认分支 被编制索引以用于代码搜索。
- 只有小于 5 MB 的文件可以被搜索。
- 只有每个文件的前 500 KB 可搜索。
- 可搜索多达 4000 个专用 和内部 存储库。 这 4000 个存储库将是你有权访问的前 10000 个专用 和内部 存储库中最近更新的存储库。
- 只有文件少于 500,000 个的存储库可搜索。
- 存档的存储库不可搜索。
- 除 搜索外,在搜索源代码时,必须始终至少包含一个搜索词。 例如,搜索 是无效的,而搜索 是有效的。
- 搜索结果最多可显示同一文件的两个分段,但文件内可能有更多结果。
- 无法使用以下通配符作为搜索查询的一部分:。 搜索只会忽略这些符号。
按文件内容或文件路径搜索
通过使用 限定符,可以将搜索限制为源代码文件的内容和/或文件路径。 如果省略此限定符,则只搜索文件内容。
| 限定符 | 示例 |
|---|---|
in:file | octocat in:file 匹配“octocat”在文件内容中出现的代码。 |
in:path | octocat in:path 匹配“octocat”在文件路径中出现的代码。 |
in:file,path | octocat in:file,path 匹配“octocat”在文件内容或文件路径中出现的代码。 |
在用户或组织的仓库内搜索
要在特定用户或组织拥有的所有仓库中搜索代码,可使用 或 限定符。 要在特定存储库中搜索代码,可使用 限定符。
| 限定符 | 示例 |
|---|---|
user:USERNAME | user:defunkt extension:rb 匹配 中以 .rb 结尾的代码。 |
org:ORGNAME |
[
**org:github extension:js**](https://github.com/search?utf8=%E2%9C%93&q=org%3Agithub+extension%3Ajs&type=Code) 匹配来自 GitHub 的以 <em>.js</em> 结尾的代码。
| repo:USERNAME/REPOSITORY | repo:mozilla/shumway extension:as 匹配 的 shumway 项目中以 .as 结尾的代码。
按文件位置搜索
可使用 限定符搜索存储库中特定位置显示的源代码。 使用 可搜索位于存储库根目录级别的文件。 或者,指定目录名称或目录路径,以搜索位于该目录或其任何子目录中的文件。
| 限定符 | 示例 |
|---|---|
path:/ | octocat filename:readme path:/ 匹配位于存储库的根级别的包含“octocat”一词的自述文件。 |
path:DIRECTORY | form path:cgi-bin language:perl 匹配 cgi-bin 目录或其任何子目录中包含“form”一词的 Perl 文件。 |
path:PATH/TO/DIRECTORY | 匹配 app/public 目录或其任何子目录(即使它们位于 app/public/js/form-validators)中的具有“console”一词的 JavaScript 文件。 |
按语言搜索
您可以基于所编写的语言搜索代码。 限定符可以是语言名称或别名。 有关支持的语言及其名称和别名的完整列表,请参阅 github-linguist/linguist 存储库。
| 限定符 | 示例 |
|---|---|
language:LANGUAGE | element language:xml size:100 匹配标记为 XML 且刚好有 100 个字节的包含“element”一词的代码。 |
language:LANGUAGE | display language:scss 匹配标记为 SCSS 的具有单词“display”的代码。 |
language:LANGUAGE | org:mozilla language:markdown 匹配标记为 Markdown 的来自所有 存储库的代码。 |
按文件大小搜索
可以使用 限定符基于代码所在文件的大小搜索源代码。 限定符使用大于、小于和范围限定符根据找到代码的文件的字节大小筛选结果。
| 限定符 | 示例 |
|---|---|
size:n | function size:>10000 language:python 匹配采用 Python 编写的位于大于 10 KB 的文件中的包含“function”一词的代码。 |
按文件名搜索
限定符匹配具有特定文件名的代码文件。 您还可以使用文件查找器在仓库中查找文件。 有关详细信息,请参阅“AUTOTITLE”。
| 限定符 | 示例 |
|---|---|
filename:FILENAME | filename:linguist 匹配名为“linguist”的文件。 |
filename:FILENAME | filename:.vimrc commands 会查找文件名中包含“commands”一词的 .vimrc 文件。 |
filename:FILENAME | filename:test_helper path:test language:ruby 匹配 test 目录中名为 test_helper 的 Ruby 文件 。 |
按文件扩展名搜索
限定符匹配具有特定文件扩展名的代码文件。
| 限定符 | 示例 |
|---|---|
extension:EXTENSION | form path:cgi-bin extension:pm 匹配 cgi-bin 下具有 .pm 文件扩展名的包含“form”一词的代码。 |
extension:EXTENSION | icon size:>200000 extension:css 匹配大于 200 KB 的以 .css 结尾的包含“icon”一词的文件。 |
其他阅读材料
- 自动标题
- AUTOTITLE