GitHub是开发者们常用的代码协作平台。你可以利用它来共享、管理开源代码库,也可以保存并修改自己的代码等等。
要想更高效地使用GitHub,你就需要掌握在该平台上进行搜索的方法。
这涉及到使用各种筛选条件,从而能够从数百万个仓库和数十亿行代码中快速找到所需信息。精确的查询语句能帮助你找到特定的函数定义、项目、人员、问题、拉取请求、代码内容、安全漏洞,或是参与贡献的机会。
无论你是初学者还是专业开发者,在本教程中你都能学会如何使用GitHub的搜索功能。
为了帮助你更好地学习,我将这篇文章分成了两个部分:
-
基本搜索功能
-
高级搜索功能
我们将会介绍的内容:
基本搜索功能
这里所说的“基本搜索”指的是那些使用起来快速且方便的常用搜索功能。
要开始搜索,只需点击GitHub的搜索图标,输入你的查询关键词,GitHub就会显示相应的结果。通过基本搜索,你可以在整个GitHub平台上进行全局搜索;也可以将搜索范围限定在特定的仓库或组织内。
如何进行全局搜索
要在GitHub上进行搜索,请点击搜索栏图标,或者按下/键来打开搜索界面。

若要在全球范围内进行搜索(即在整个GitHub平台上搜索),请打开搜索框,输入您的查询关键词,然后从下拉菜单中选择“在整个GitHub上搜索”,或直接按回车键。

点击“在整个GitHub上搜索”按钮后,系统会将您引导至一个显示所有与您的查询相关的结果的页面。

如何进行针对性搜索(针对特定的仓库或组织)
若要在某个特定的仓库或组织内进行搜索,请进入该仓库或组织的页面,在顶部的搜索框中输入您的查询关键词,然后按回车键。
例如,如果您想在frontendweb仓库中查找以“pnpm”开头的文件名:

在搜索栏中,您会看到四个建议选项:第一个是“在此仓库内搜索”,第二个是“在此组织内搜索”,第三个是“在整个GitHub上搜索”,最后一个则是“显示相似文件”这一选项。点击任意一个文件名称,系统都会在GitHub的网页编辑器中打开该文件。
高级搜索功能
除了使用GitHub的搜索栏外,您还可以通过高级搜索页面来在GitHub上进行搜索。
GitHub的高级搜索功能可以帮助您找到特定的代码、仓库或问题。您可以根据星数、所有者、分支数量、关注者数量、编程语言以及创建日期等因素来过滤搜索结果。
当您填写完所有高级搜索参数后,系统会自动在顶部的搜索栏中生成相应的查询语句,此时您可以点击“搜索”按钮开始查找。

举个简单的例子,让我们在GitHub上搜索与React相关的信息,包括最近的拉取请求、推送请求、问题、提交记录以及相关讨论等。我们可以利用GitHub的高级搜索功能来实现这一目标。在第一个输入框中输入“React”作为关键词,再添加所有者信息(例如Facebook),这样就能找到与Facebook组织或用户相关的所有与ReactJS相关的内容了。

点击搜索按钮后,您应该会看到如下结果页面:

如您所见,GitHub的高级搜索功能允许您使用一系列强大的筛选条件与选项来查找特定的代码、仓库或问题。现在让我们进一步了解一下这些筛选条件吧。
搜索筛选条件
您可以直接使用各种关键筛选条件来过滤搜索结果。这些筛选条件可以分为不同的类别:
高级选项
-
由这些所有者创建:输入具体的用户或组织名称,例如GitHub、Atom、Electron、Octokit等。
-
位于这些仓库中:输入具体的用户或组织名称,例如Facebook/React、Vercel/Next.js等。
-
创建于这些日期:指定仓库的创建日期,例如
>2016-04-29、=2016-04-29等。如需了解更多信息,请查阅日期查询方式相关文档。 -
使用这种语言编写:从列表中选择对应的编程语言,例如JavaScript、TypeScript、Rust等,从而筛选出使用该语言编写的仓库。
仓库选项
-
拥有这么多星标:在
stars:字段中输入星标的数量,以此来筛选具有特定星标数量的仓库。您可以使用大于/小于等比较运算符,例如>1000(超过1000个星标)或=1000(恰好1000个星标),从而根据受欢迎程度来缩小搜索范围。 -
被分叉了这么多次:输入分叉的次数,以此来筛选具有特定分叉次数的仓库。您可以使用大于/小于等比较运算符,例如100..1000(查找分叉次数在100到1000之间的仓库)、>1000(超过1000次分叉)或=1000(恰好1000次分叉),从而根据受欢迎程度来缩小搜索范围。
-
大小为这个数值:输入仓库的大小(以KB为单位),以此来筛选相应大小的仓库。例如,大小为10000 KB的仓库。
-
在某个日期之后推送:输入日期,以此来筛选在该日期之后被推送的仓库。例如,>2013-02-01这个条件会匹配所有在2013年1月之后被推送且名称中包含“react”的仓库。
-
采用这种许可证:选择相应的许可证类型,以此来筛选或查找基于该许可证发布的仓库。例如,那些采用Apache License 2.0许可的仓库。
代码搜索选项
-
使用此扩展名: 输入您想在 GitHub 上搜索的扩展名,例如 rb、py 或 jpg。
-
在指定路径中: 输入路径来过滤 GitHub 上的文件,从而根据文件在仓库中的位置进行搜索。例如,您可以通过同时使用 “filename:” 和 “path:” 来查找位于 `
./components` 文件夹内的 `header.tsx` 文件。 -
使用此文件名: 输入您想在 GitHub 上搜索的文件名,例如 app、footer 或 header。
问题搜索选项
-
按状态筛选: 选择问题的状态(是开放状态还是已关闭状态)。例如,`libraries state:open mentions:rajdeep` 可以匹配那些提到 @rajdeep 且包含 “libraries” 这个关键词的开放问题;而 `language:JavaScript state:open` 则可以匹配 JavaScript 仓库中的开放问题。
-
按评论数量筛选: 根据评论数量来过滤问题。例如,`state:closed comments:>100` 可以匹配评论数超过 100 的已关闭问题;`comments:500..1000` 则可以匹配评论数量在 500 到 1,000 之间的问题。
-
按标签筛选: 输入标签来过滤结果。由于一个问题可以拥有多个标签,因此您可以为每个问题列出并添加多个标签条件。例如,`label:bug label:resolved` 可以匹配同时带有 “bug” 和 “resolved” 标签的问题;`label:bug,resolved` 则可以匹配带有 “bug” 或 “resolved” 标签的问题;而 `broken in:body -label:bug label:priority` 可以匹配正文中含有 “broken” 这个关键词、没有 “bug” 标签但带有 “priority” 标签的问题。
-
按创建者筛选: 输入名称或用户名,以便过滤由特定用户或集成账户创建的问题。
例如,`author:rajdeep` 可以匹配由 @rajdeep 创建的、且正文中含有 “fixed” 这个关键词的问题;`author:octocat` 则可以匹配由名为 “octocat” 的账户创建的问题。 -
按被提及用户筛选: 输入名称或用户名,以便查找其中提到了该用户的问题。例如,`fixed mentions:rajdeep` 可以匹配那些正文中含有 “fixed” 这个关键词且提到了 @rajdeep 的问题。
-
按分配给用户的标签筛选: 输入名称或用户名,以便根据具体被分配给某个用户的标签来过滤问题。例如,`state:open assignee:rajdeep` 可以匹配分配给了 @rajdeep 的开放问题。
-
按更新时间筛选: 输入日期,以便根据问题的创建时间或最后更新时间来过滤结果。例如,`language:c# created:<2011-01-01 state:open` 可以匹配那些在 2011 年之前用 C# 编写的仓库中创建的开放问题;而 `weird in:body updated:>=2013-02-01` 则可以匹配正文中含有 “weird” 这个关键词且是在 2013 年 2 月之后更新的问题。
用户选项
-
使用此全名:输入一个全名,以便筛选GitHub上名称中包含“rajdeep singh”的仓库。
-
从该位置查找:输入一个地点,以便在GitHub上查找用户。例如,
location:russia language:javascript会返回位于俄罗斯且其仓库主要使用JavaScript编写的用户。 -
拥有这么多关注者:输入一个关注者数量,以便按受欢迎程度筛选用户。例如,
followers:>=1000会查找拥有1,000名或更多关注者的用户,而followers:1..10 rajdeep则会返回名称中包含“rajdeep”且拥有1到10名关注者的用户。 -
拥有这么多公共仓库:输入一个仓库数量,以便按用户拥有的公共仓库数量进行筛选。例如,
repos:>10会查找拥有超过10个仓库的用户,而repos:10..30则会返回在GitHub上拥有10到30个公共仓库的用户。 -
使用这种语言进行开发:选择一种语言,以便根据用户仓库的主要编程语言来查找相应用户。例如,
language:javascript location:russia会返回位于俄罗斯且其仓库主要使用JavaScript编写的用户,而language:javascript fullname:rajdeep则会查找在GitHub上拥有JavaScript仓库且全名中包含“rajdeep”的用户。
维基选项
- 更新日期早于……:输入一个日期,以便筛选那些在
2016-01-01之后才被更新的、且名称中包含“next.js”的维基页面。
使用高级搜索选项的最佳方法是将一个或多个选项组合起来,从而获得最佳搜索结果。
如何保存搜索结果
我并不经常使用GitHub的高级搜索功能,但我曾用它来寻找可以学习或参与开发的开源项目。如果你花一点时间在GitHub高级搜索中填写相关信息,就可以将这个搜索记录保存下来,以便日后使用:

输入名称,然后点击“创建保存的搜索”按钮:

你可以查看自己保存的所有搜索记录:

如何在GitHub上管理保存的搜索结果

要管理保存的搜索结果,请打开搜索栏,在其中输入“saved:”,然后点击“管理保存的搜索结果”按钮。

要编辑保存的搜索结果,请点击其旁边的铅笔图标;要删除保存的搜索结果,请点击垃圾桶图标。
为什么我们需要GitHub高级搜索功能?
如前所述,GitHub高级搜索功能能帮助你找到最适合在开源项目中贡献的内容。
例如,作为Next.js和React.js领域的专家,我可以使用GitHub高级搜索功能来寻找适合自己参与的开源项目。
即使你是初学者,也可以利用这一功能找到维护者标记为“适合入门”的项目,从而更容易开始进行贡献。
结论
GitHub高级搜索功能非常实用。它不仅可用于搜索,还能帮助你查找与你的查询、仓库、用户或其他相关内容相关的最新问题、拉取请求和推送请求。我个人最喜欢用它来寻找适合参与的开源项目机会。


/filters:no_upscale()/news/2026/02/github-layered-def/en/resources/1Screenshot 2026-02-03 at 4.12.07 PM-1770164607749.png)