目录导航
我们推出了一个技术预览版,以大幅改进在 GitHub 上搜索代码。我们希望让您尽早了解我们的工作,并在我们反复帮助您探索和发现代码的过程中获得您的反馈——同时节省您的时间并让您保持专注。立即注册候补名单,并向我们提供您的反馈!

入门
为您的帐户启用技术预览后,您可以在https://cs.github.com 上试用。最初,我们在构建时为新代码搜索创建了一个单独的界面,但是一旦我们对反馈感到满意并准备好更广泛地采用,我们就会将其集成到主要的 github.com 体验中。
目前,搜索索引涵盖了超过 500 万个最受欢迎的公共存储库;此外,您可以搜索您有权访问的私有存储库。以下是一些需要注意的事项:
- 借助智能排名和针对代码优化的索引,轻松在最佳结果中找到您要查找的内容。
- 搜索精确字符串,支持子字符串匹配和特殊字符,或使用正则表达式(包含在
/
分隔符中)。 - 使用
org:
或repo:
限定符确定搜索范围,并在搜索框中提供自动完成建议。 - 缩小使用过滤器的结果一样
language:
,path:
,extension:
,和布尔运算符(OR
,NOT
)。用 搜索符号的定义symbol:
。 - 使用附加功能快速了解您的方位,例如目录树视图、活动范围的符号信息、跳转到定义、选择搜索等!
此处记录了语法,您可以?
在任何页面上按以查看可用的键盘快捷键。您还可以查看常见问题解答。
下一步是什么?
我们很高兴在我们迭代的同时与您分享我们的工作作为技术预览,并与您一起寻找独特、新颖的用例和工作流程。你一直想尝试什么激进的新想法?什么功能会让你的工作效率最高?是否缺少对您最喜欢的语言的支持?让我们知道,让我们一起实现它。
我们不乏关于下一步关注什么的想法。我们将增加索引,直到它涵盖您可以在 GitHub 上访问的每个存储库。我们将试验评分和排名启发式方法,看看什么最有效,我们将探索哪些 API 和集成最有影响力。我们将继续为特定语言的功能添加对更多语言的支持。但最重要的是,我们希望听取您的反馈并构建您甚至不知道自己需要的工具。
更大的图景:GitHub 的开发人员生产力
作为开发者,保持在流动状态是很难的。每当您查找如何使用库时,或者由于您的开发人员环境与 CI 背离而导致测试失败,或者需要知道错误消息如何出现时,您都会被打断。解决中断所需的时间越长,您丢失的上下文就越多。
今年早些时候,我们推出了GitHub Copilot作为技术预览版,利用 AI 的力量让您即使在不熟悉的领域也能自信地编码。我们还发布了Codespaces并分享了在内部采用它们如何提高 GitHub 自身的生产力。作为统一解决方案的一部分,我们在这些围绕开发人员生产力的更广泛计划的背景下看到了我们对代码搜索和导航的改进。
对于代码搜索,我们的愿景是帮助每个开发人员快速直观地搜索、发现、导航和理解代码。GitHub 代码搜索让全世界的代码触手可及:一切都只需搜索即可。它首先向您显示最相关的结果并帮助您在每一步自动完成,从而帮助您保持流程状态。一旦您进入结果页面,丰富的浏览体验将针对阅读和理解代码进行优化,让您能够快速理解陌生的逻辑,即使是 IDE 之外的代码。
我们计划很快分享更多关于我们的进展的更新,包括深入研究代码搜索背后的工程工作以及我们依赖的开发人员、开源项目和社区(特别感谢 @BurntSushi和@lemire,他们的工作已经是我们的基础)。同时,技术预览名额有限,赶快报名吧!
关于cs.github.com

我可以搜索什么?
哪些存储库被索引?
我们已经索引了超过 500 万个公共存储库(基于多种因素,包括受欢迎程度和最近的活动)。此外,技术预览中 GitHub 用户的私有存储库已编入索引(并且可以由有权访问这些私有存储库的技术预览参与者进行搜索)。但是,此时可能不会索引非常大的存储库。
索引了哪些存储库内容?
并非所有代码都被索引。当前对索引代码的限制是:
- 不包括供应商和生成的代码(由Enry确定)
- 排除空文件和超过 350 KiB 的文件
- 仅包含 UTF-8 编码的文件
- 可能不会索引非常大的存储库
我们目前仅支持在默认分支上搜索内容。
如何将我的存储库放入索引?
一旦您被接受进入技术预览,我们将索引您拥有的任何存储库以及您所属组织中的任何存储库,无论是公共的、私有的还是内部的。
只有有权在 github.com 上查看您的代码的用户才能在搜索结果中看到您的代码。
推送后索引多久更新?
我们不会在技术预览期间对此做出任何保证,但通常可以在几分钟内搜索到推送。
其他人可以搜索我的私人仓库吗?
仅当他们有权访问您在 GitHub 上的私有存储库时。
哪些语言支持符号搜索?
C#、Python、Go、Java、JavaScript、TypeScript、PHP、Protocol Buffers、Ruby 和 Rust 支持符号提取。我们正在努力增加更多。如果您对贡献语言支持感兴趣,我们会使用开源的Tree-sitter解析器生态系统。如果您可以为您的语言添加 Tree-sitter 支持,我们可能会支持它!
我是否必须配置任何东西来设置符号搜索?
不,符号搜索基于使用开源Tree-sitter解析器生态系统解析您的代码,因此不需要额外的设置或构建工具集成。
为什么我找不到 `git grep` 返回的匹配项?
某些内容没有被技术预览索引(见上文),而git grep搜索存储库中的所有内容。
为什么结果不包括我有权访问的存储库?
请稍后再次尝试搜索,看看结果是否出现。如果没有,您可能发现了一个错误。请告诉我们!
为什么我找不到 GitHub.com 代码搜索返回的匹配项?
在技术预览中,并非所有代码或所有存储库都被索引。例如,当前排除了非常大的文件、供应商、生成的代码和二进制文件。有关限制的更多信息,请参阅常见问题解答的这一部分。
我可以搜索所有分行吗?
还没有。目前只能搜索默认分支,但我们计划在未来支持分支搜索。
我可以搜索分叉吗?
是的,分叉包含在索引中。但是,分叉与其他存储库受到相同的限制,因此此时并非所有存储库都被索引。
我可以超出结果的第 10 页吗?
不,不是在这个时候。
我可以检索所有搜索结果吗?
不,目前不会,但我们打算在未来通过 API 提供此功能。
如何搜索?
什么是搜索语法?
搜索语法与 GitHub.com 搜索语法略有不同,以支持正则表达式和符号搜索等新运算符。您可以在此处找到有关新语法的文档。
搜索结果如何排名?
我们使用各种启发式方法,包括文件中有多少匹配项、匹配项的质量、文件类型、搜索是否匹配符号以及存储库拥有的星数等因素。
我可以通过编程方式/通过 API 进行搜索吗?
还没有,但我们计划很快构建一个 API!
如何报告安全漏洞?
请使用GitHub Bug Bounty 计划告诉我们您的发现。
这个错误信息是什么意思?
查看反馈讨论以查看它是否是一个已知问题,如果不是,则打开一个新的讨论。
下一步是什么?
我可以加快向我认识的人授予访问权限的过程吗?
不是现在。我们知道技术预览令人兴奋(我们很高兴与大家分享),但我们现在对我们的推出持谨慎态度。我们会尽快添加更多人!
为什么这与 github.com 用户界面分开?
它是单独的,以便我们可以快速迭代 UI/UX 和功能集,而不会破坏数百万人的 github.com。准备就绪后,我们计划将这些改进集成回 github.com 主界面,用于搜索、浏览和导航代码。
这会出现在 GitHub Enterprise Server 上吗?
一旦我们稳定了 UX 和功能集,我们计划将高级代码搜索功能引入所有 GitHub 计划。
您会与 IDE 和编辑器集成吗?
我们的目标是提高开发人员的生产力,我们意识到这意味着与开发人员会面。让我们知道您对什么感兴趣。哪些编辑?您认为您的工作流程是如何通过编辑器在 GitHub 上搜索代码?
我可以在哪里提问和提供反馈?
公众反馈可以发布在我们的论坛中。对于您想私下分享的反馈,请使用搜索结果页面上的“提供反馈”链接。
项目地址
转载请注明出处及链接