在 GitHub 上查找文件
您可以使用文件查找器在仓库中搜索文件。 要在 GitHub 上的多个仓库中搜索文件,请使用 filename 代码搜索限定符。
提示:
文件查找器的结果不包括某些目录,例如 build、log、tmp 和 vendor。 要搜索这些目录中的文件,请使用 filename 代码搜索限定符。
按键盘上的 t 键也可以打开文件查找器。
1.在 GitHub.com 上,导航到仓库的主页面。
2.在文件列表上方,单击 Go to file(转到文件)。
3.在搜索字段中,键入要查找文件的名称。
4.在结果列表中 ,单击要查找的文件。
搜索仓库
您可以在 GitHub 上搜索仓库,并使用这些仓库搜索限定符的任意组合缩小结果范围。
您可以在所有 GitHub.com 内全局搜索仓库,也可以在特定组织内搜索仓库。
要在搜索结果中包括复刻,您需要将 fork:true 或 fork:only 添加到查询。
提示:
对多个字词的搜索词使用引号。 例如,如果要搜索具有标签 “In progress” 的议题,可搜索 label:“in progress”。 搜索不区分大小写。
按仓库名称、说明或自述文件内容搜索
通过 in 限定符,您可以将搜索限制为仓库名称、仓库说明、自述文件内容或这些的任意组合。 如果省略此限定符,则只搜索仓库名称和说明。
限定符 | 示例 |
---|---|
in:name | jquery in:name 匹配仓库名称中含有 “jquery” 的仓库。 |
in:description | jquery in:name,description 匹配仓库名称或说明中含有 “jquery” 的仓库。 |
in:readme | jquery in:readme 匹配仓库自述文件中提及 “jquery” 的仓库。 |
repo:owner/name | repo:octocat/hello-world 匹配特定仓库名称。 |
在用户或组织的仓库内搜索
要在特定用户或组织拥有的所有仓库中搜索,您可以使用 user 或 org 限定符。
限定符 | 示例 |
---|---|
user:USERNAME | user:defunkt forks:>100 匹配来自 @defunkt、拥有超过 100 复刻的仓库。 |
org:ORGNAME | org:github 匹配来自 GitHub 的仓库。 |
按仓库大小搜索
size 限定符使用大于、小于和范围限定符查找匹配特定大小(以千字节为单位)的仓库。
限定符 | 示例 |
---|---|
size:n | size:1000 匹配恰好为 1 MB 的仓库。 |
size:>=30000 匹配至少为 30 MB 的仓库。 | |
size:<50 匹配小于 50 KB 的仓库。 | |
size:50…120 匹配介于 50 KB 与 120 KB 之间的仓库。 |
按关注者数量搜索
您可以使用 followers 限定符以及大于、小于和范围限定符,基于关注仓库的用户数量过滤仓库。
限定符 | 示例 |
---|---|
followers:n | node followers:>=10000 匹配有 10,000 或更多关注者提及文字 “node” 的仓库。 |
styleguide linter followers:1…10 匹配拥有 1 到 10 个关注者并且提及 “styleguide linter” 一词的的仓库。 |
按复刻数量搜索
forks 限定符使用大于、小于和范围限定符指定仓库应具有的复刻数量。
限定符 | 示例 |
---|---|
forks:n | forks:5 匹配只有 5 个复刻的仓库。 |
forks:>=205 匹配具有至少 205 个复刻的仓库。 | |
forks:<90 匹配具有少于 90 个复刻的仓库。 | |
forks:10…20 匹配具有 10 到 20 个复刻的仓库。 |
按星号数量搜索
您可以使用大于、小于和范围限定符,基于仓库的星标数量来搜索仓库。
限定符 | 示例 |
---|---|
stars:n | stars:500 匹配恰好具有 500 个星号的仓库。 |
stars:10…20 匹配具有 10 到 20 个星号、小于 1000 KB 的仓库。 | |
stars:>=500 fork:true language:php 匹配具有至少 500 个星号,包括复刻的星号(以 PHP 编写)的仓库。 |
按仓库创建或上次更新时间搜索
您可以基于创建时间或上次更新时间过滤仓库。 对于仓库创建,您可以使用 created 限定符;要了解仓库上次更新的时间,您要使用 pushed 限定符。 pushed 限定符将返回仓库列表,按仓库中任意分支上最近进行的提交排序。
两者均采用日期作为参数。 日期格式必须遵循 ISO8601标准,即 YYYY-MM-DD(年-月-日)。 您也可以在日期后添加可选的时间信息 THH:MM:SS+00:00,以便按小时、分钟和秒进行搜索。 这是 T,随后是 HH:MM:SS(时-分-秒)和 UTC 偏移 (+00:00)。
搜索日期时,可以使用大于、小于和范围限定符来进一步筛选结果。
限定符 | 示例 |
---|---|
created:YYYY-MM-DD | webos created:<2011-01-01 匹配具有 “webos” 字样、在 2011 年之前创建的仓库。 |
pushed:YYYY-MM-DD | css pushed:>2013-02-01 匹配具有 “css” 字样、在 2013 年 1 月之后收到推送的仓库。 |
case pushed:>=2013-03-06 fork:only 匹配具有 “case” 字样、在 2013 年 3 月 6 日或之后收到推送并且作为复刻的仓库。 |
按语言搜索
您可以根据仓库中代码的语言搜索仓库。
限定符 | 示例 |
---|---|
language:LANGUAGE | rails language:javascript 匹配用 JavaScript 编写、包含单词“rails”的存储库。 |
按主题搜索
您可以找到按特定主题分类的所有仓库。
限定符 | 示例 |
---|---|
topic:TOPIC | topic:jekyll 匹配属于 “Jekyll” 主题类别的存储库。 |
按主题数量搜索
您可以使用 topics 限定符以及大于、小于和范围限定符,根据应用于仓库的主题数量来搜索仓库。
限定符 | 示例 |
---|---|
topics:n | topics:5 匹配具有五个主题的仓库。 |
topics:>3 匹配超过三个主题的仓库。 |
搜索主题
您可以在 GitHub 上搜索主题、探索相关主题以及查看有多少仓库与特定主题关联。
1.导航到 https://github.com/search。
2.输入主题关键词。
3.在左侧边栏中,要将搜索范围缩小到主题,请单击 Topics(主题)。
使用搜索限定符缩小搜索范围
如果您要探索关于特定主题的仓库、查找要贡献内容的项目或了解哪些主题在 GitHub 上最受欢迎,您可以使用搜索限定符 is:featured、is:curated、repositories:n 和 created:YYYY-MM-DD 搜索主题。
is:featured 搜索限定符会将搜索结果范围缩小为 GitHub 上具有最多仓库的主题。 这些主题还会在 https://github.com/topics/ 上提供。
is:curated 搜索限定符可将搜索结果范围缩小到社区成员已向其添加额外信息的主题。
您可以使用日期参数和 created: 根据创建时间过滤主题,也可以使用 repositories:n 根据与此主题关联的仓库数量过滤主题。 这两个限定符都可以使用大于和小于范围限定符。
日期格式必须遵循 ISO8601标准,即 YYYY-MM-DD(年-月-日)。 您也可以在日期后添加可选的时间信息 THH:MM:SS+00:00,以便按小时、分钟和秒进行搜索。 这是 T,随后是 HH:MM:SS(时-分-秒)和 UTC 偏移 (+00:00)。
搜索日期时,可以使用大于、小于和范围限定符来进一步筛选结果。
限定符 | 示例 |
---|---|
is:curated | is:curated javascript 匹配精心策划且含有 “javascript” 字样的主题。 |
is:featured | is:featured javascript 匹配 https://github.com/topics/ 上提供且含有 “javascript” 字样的主题。 |
is:not-curated | is:not-curated javascript 匹配没有额外信息(例如说明或徽标)且含有 “javascript” 字样的主题。 |
is:not-featured | is:not-featured javascript 匹配 https://github.com/topics/ 上未提供且含有 “javascript” 字样的主题。 |
repositories:n | repositories:>5000 匹配超过 5000 个仓库的主题。 |
created:YYYY-MM-DD | Serverless created:>2019-01-01 匹配含有 “serverless” 字样、在 2018 年之后创建的主题。 |
搜索代码
您可以全局搜索所有 GitHub,也可搜索特定仓库或组织。
您只能使用这些代码搜索限定符搜索代码。 搜索代码时,专用于仓库、用户或提交的搜索限定符将不起作用。
提示:
对多个字词的搜索词使用引号。 例如,如果要搜索具有标签 “In progress” 的议题,可搜索 label:“in progress”。 搜索不区分大小写。
代码搜索的注意事项
由于搜索代码的复杂性,执行搜索的方式有一些限制:
- 您必须登录到 GitHub 上的个人帐户才能在所有公共仓库中搜索代码。
- 复刻中的代码仅当复刻的星号超过父级仓库时可搜索。 星号少于父仓库的复刻不为代码搜索编索引。 要在搜索结果中包括星号比其父项多的复刻,您需要将 fork:true 或 fork:only 添加到查询。 更多信息请参阅“在复刻中搜索”。
- 只有默认分支被索引用于代码搜索。
- 只有小于 384 KB 的文件可搜索。
- 最多可搜索 4,000 个私有 存储库。 这 4,000 个存储库将是您有权访问的前 10,000 个私有 存储库中的最新更新。
- 只能搜索少于 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” 的代码。 |
在用户或组织的仓库内搜索
要在特定用户或组织拥有的所有仓库中搜索代码,您可以使用 user 或 org 限定符。 要在特定仓库中搜索代码,您可以使用 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:LANGUAGE | element language:xml size:100 匹配标记为 XML 且恰好有 100 个字节的并含有 “element” 字样的代码。 |
display language:scss 匹配标记为 SCSS 且含有 “display” 字样的代码。 | |
org:mozilla language:markdown 匹配标记为 Markdown 且来自所有 @mozilla 仓库的代码。 |
按文件大小搜索
您可以使用 size 限定符基于代码所在文件的大小搜索源代码。
限定符 | 示例 |
---|---|
sizee:n | function size:>10000 language:python 匹配含有 “function” 字样、以 Python 编写、位于大于 10 KB 的文件中的代码。 |
按文件名搜索
filename 限定符匹配具有特定文件名的代码文件。
限定符 | 示例 |
---|---|
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 内全局搜索提交,也可以在特定仓库或组织内搜索提交。
当您搜索提交时,仅搜索仓库的默认分支。
提示:
对多个字词的搜索词使用引号。 例如,如果要搜索具有标签 “In progress” 的议题,可搜索 label:“in progress”。 搜索不区分大小写。
在提交消息内搜索
您可以在消息中查找包含特定字词的提交。 例如,fix typo 匹配包含 “fix” 和 “typo” 字样的提交。
按作者或提交者搜索
您可以使用 author 或 committer 限定符按特定用户查找提交。
限定符 | 示例 |
---|---|
author:USERNAME | author:defunkt 匹配 @defunkt 创作的提交。 |
committer:USERNAME | committer:defunkt 匹配 @defunkt 提交的提交。 |
author-name 和 committer-name 限定符匹配按作者或提交者姓名的提交。
限定符 | 示例 |
---|---|
author-name:NAME | author-name:wanstrath 匹配作者姓名中包含 “wanstrath” 的提交。 |
committer-name:NAME | committer-name:wanstrath 匹配提交者姓名中包含 “wanstrath” 的提交。 |
author-email 和 committer-email 限定符按作者或提交者的完整电子邮件地址匹配提交。
限定符 | 示例 |
---|---|
author-email:EMAIL | author-email:chris@github.com 匹配 chris@github.com 创作的提交。 |
committer-email:EMAIL | committer-email:chris@github.com 匹配 chris@github.com 提交的提交。 |
按创作或提交日期搜索
使用 author-date 和 committer-date 限定符可匹配指定日期范围内创作或提交的提交。
搜索日期时,可以使用大于、小于和范围限定符来进一步筛选结果。
限定符 | 示例 |
---|---|
author-date:YYYY-MM-DD | author-date:<2016-01-01 匹配 2016-01-01 之前创作的提交。 |
committer-date:YYYY-MM-DD | committer-date:>2016-01-01 匹配 2016-01-01 之后的提交。 |
过滤合并提交
merge 限定符过滤合并提交。
限定符 | 示例 |
---|---|
merge:true | merge:true 匹配合并提交。 |
merge:false | merge:false 匹配非合并提交。 |
按哈希搜索
hash 限定符匹配具有指定 SHA-1 哈希的提交。
限定符 | 示例 |
---|---|
hash:HASH | hash:124a9a0ee1d8f1e15e833aff432fbb3b02632105 匹配具有哈希 124a9a0ee1d8f1e15e833aff432fbb3b02632105 的提交。 |
在用户或组织的仓库内搜索
要在特定用户或组织拥有的所有仓库中搜索提交,请使用 user 或 org 限定符。 要在特定仓库中搜索提交,请使用 repo 限定符。
限定符 | 示例 |
---|---|
user:USERNAME | gibberish user:defunkt 匹配 @defunkt 拥有的仓库中含有 “gibberish” 字样的提交消息。 |
org:ORGNAME | test org:github 匹配 @github 拥有的仓库中含有 “test” 字样的提交消息。 |
repo:USERNAME/REPO | language repo:defunkt/gibberish 匹配 @defunkt 的 “gibberish” 仓库中含有 “language” 字样的提交消息。 |
搜索用户
仅搜索用户或组织
默认情况下,搜索用户将同时返回个人和组织。 不过,您可以使用 type 限定符将搜索结果限制为仅个人帐户或组织。
限定符 | 示例 |
---|---|
type:user | mike in:name created:<2011-01-01 type:user 匹配 2011 年之前创建、名为 “mike” 的个人帐户。 |
type:org | data in:email type:org 匹配其电子邮件中含有 “data” 字样的组织。 |
按帐户名、全名或公共电子邮件搜索
您可以使用 user 或 org 限定符根据个人用户或组织帐户的名称过滤搜索。
通过 in 限定符,您可以将搜索限制为用户名 (login)、全名、公共电子邮件或这些的任意组合。 如果省略此限定符,则只搜索用户名和电子邮件地址。 出于隐私原因,您无法按电子邮件域名搜索。
限定符 | 示例 |
---|---|
user:name | user:octocat 匹配用户名为 “octocat” 的用户。 |
org:name | org:electron type:users 匹配 Electron 组织的帐户名。 |
in:login | kenya in:login 匹配其用户名中含 “kenya” 字样的用户。 |
in:name | bolton in:name 匹配其真实姓名含有 “bolton” 字样的用户。 |
fullname:firstname lastname | fullname:nat friedman 匹配全名为 “Nat Friedman” 的用户。 注:此搜索限定符区分空格。 |
in:email | data in:email 匹配其电子邮件中含有 “data” 字样的用户。 |
按用户拥有的仓库数量搜索
您可以使用 repos 限定符以及大于、小于和范围限定符基于用户拥有的仓库数量过滤用户。
限定符 | 示例 |
---|---|
repos:n | repos:>9000 匹配其仓库数超过 9,000 的用户。 |
bert repos:10…30 匹配拥有 10 到 30 个仓库、其用户名或真实姓名含有 “bert” 字样的用户。 |
按位置搜索
您可以按其个人资料中指示的位置搜索用户。
限定符 | 示例 |
---|---|
location:LOCATION | repos:1 location:iceland 匹配恰好有一个仓库位于冰岛的用户。 |
按仓库语言搜索
使用 language 限定符,您可以基于用户所拥有仓库的语言搜索用户。
限定符 | 示例 |
---|---|
language:LANGUAGE | language:javascript location:russia 匹配其大多数仓库均以 JavaScript 编写的俄罗斯用户。 |
jenny language:javascript in:fullname 匹配其全名含有 “jenny” 字样、具有 JavaScript 仓库的用户。 |
按个人帐户创建时间搜索
您可以使用 created 限定符基于用户加入 GitHub 的时间过滤用户。 这将采用日期作为其参数。 日期格式必须遵循 ISO8601标准,即 YYYY-MM-DD(年-月-日)。 您也可以在日期后添加可选的时间信息THH:MM:SS+00:00,以便按小时、分钟和秒进行搜索。 这是 T,随后是 HH:MM:SS(时-分-秒)和 UTC 偏移 (+00:00)。
搜索日期时,可以使用大于、小于和范围限定符来进一步筛选结果。
限定符 | 示例 |
---|---|
created:YYYY-MM-DD | created:<2011-01-01 匹配在 2011 年之前加入的用户。 |
created:>=2013-05-11 匹配在 2013 年 5 月 11 日或之后加入的用户。 | |
created:2013-03-06 location:london 匹配 2013 年 3 月 6 日加入、其位置列为伦敦的用户。 | |
created:2010-01-01…2011-01-01 john in:login 匹配在 2010 年与 2011 年之间加入、其用户名中含有 “john” 字样的用户。 |
按关注者数量搜索
您可以使用 followers 限定符以及大于、小于和范围限定符基于用户拥有的关注者数量过滤用户。
限定符 | 示例 |
---|---|
followers:n | followers:>=1000 匹配有 1,000 个或更多关注者的用户。 |
sparkle followers:1…10 匹配具有 1 到 10 个关注者、其名称中含有 “sparkle” 字样的用户。 |