Appearance
当 Copilot 生成的代码建议与 GitHub 上的公开代码相似时,它会在日志中记录匹配来源和许可证信息。通过查看各 IDE 的日志输出,可以了解建议来自哪些开源项目、对应什么许可证,方便在商业项目中合规使用。
GitHub Copilot 代码引用:查看补全建议匹配的公开代码来源
前提条件
代码引用功能需要以下条件:
- 个人或组织设置中允许匹配公开代码的建议(未设置为 Block 模式)
- 或使用的产品版本不支持 Block 模式
如需调整,到 GitHub Settings → Copilot 中查看"Suggestions matching public code"设置。
各 IDE 中查看代码引用
VS Code
- 打开输出面板:View → Output
- 在下拉菜单中选择 GitHub Copilot Log (Code References)
- 每次接受建议后,如果存在匹配的公开代码,日志会追加记录
日志示例:
2026-04-28T10:15:30 - Similar code at [Ln 2, Col 8]
License: MIT
URL: https://github.com/octo-org/monalisa/blob/main/index.jsJetBrains IDEs
- 打开 IDE 日志:Help → Show Log in Finder/Explorer
- 搜索
[Public Code References] - 日志条目包含:文件路径、行列位置、许可证类型(
NOASSERTION表示未知)、公开代码 URL
Visual Studio
- 打开输出窗口:View → Output
- 在下拉菜单中选择 GitHub Copilot
- 搜索
[Completions Public Code Match Information] - 日志包含时间戳、许可证类型、公开代码 URL
Copilot Chat 中查看代码引用
VS Code / JetBrains
Chat 响应中如有相似公开代码,会显示:
"Similar code found with n license types - View matches"
点击 View matches 查看详情:许可证类型、原始代码 URL 和匹配代码片段。
Visual Studio
Chat 中显示:
"Found similar code in public repos. View matches"
点击后在日志中查看详情。
GitHub.com 网页版
Chat 响应下方显示:
"Public code references from n repositories"
点击查看匹配的仓库和许可证列表。
测试代码引用是否正常工作
- 新建一个 JS 文件(如
fizz-buzz.js) - 输入
function fizzBuzz(,等待 Copilot 建议并接受 - 查看对应 IDE 的日志,应该会出现新的代码匹配记录
常见问题
Q: 为什么我看不到任何代码引用日志?
A: 检查两点:① 设置中是否启用了匹配公开代码的建议;② 是否在正确的日志面板中查看。VS Code 需要在 Output 下拉中手动切换到"GitHub Copilot Log (Code References)"。
Q: 日志显示 NOASSERTION 是什么意思?
A: 表示匹配的公开代码没有明确声明许可证(或许可证类型无法确定)。在商业项目中使用时需要更谨慎。
Q: 代码引用只在代码补全时出现,还是 Chat 也会记录?
A: 两者都会记录。代码补全在接受建议时记录到日志,Chat 在响应中直接展示"View matches"链接。