Skip to content

当 Copilot 生成的代码建议与 GitHub 上的公开代码相似时,它会在日志中记录匹配来源和许可证信息。通过查看各 IDE 的日志输出,可以了解建议来自哪些开源项目、对应什么许可证,方便在商业项目中合规使用。

GitHub Copilot 代码引用:查看补全建议匹配的公开代码来源

前提条件

代码引用功能需要以下条件:

  • 个人或组织设置中允许匹配公开代码的建议(未设置为 Block 模式)
  • 或使用的产品版本不支持 Block 模式

如需调整,到 GitHub Settings → Copilot 中查看"Suggestions matching public code"设置。

各 IDE 中查看代码引用

VS Code

  1. 打开输出面板:View → Output
  2. 在下拉菜单中选择 GitHub Copilot Log (Code References)
  3. 每次接受建议后,如果存在匹配的公开代码,日志会追加记录

日志示例:

2026-04-28T10:15:30 - Similar code at [Ln 2, Col 8]
License: MIT
URL: https://github.com/octo-org/monalisa/blob/main/index.js

JetBrains IDEs

  1. 打开 IDE 日志:Help → Show Log in Finder/Explorer
  2. 搜索 [Public Code References]
  3. 日志条目包含:文件路径、行列位置、许可证类型(NOASSERTION 表示未知)、公开代码 URL

Visual Studio

  1. 打开输出窗口:View → Output
  2. 在下拉菜单中选择 GitHub Copilot
  3. 搜索 [Completions Public Code Match Information]
  4. 日志包含时间戳、许可证类型、公开代码 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"

点击查看匹配的仓库和许可证列表。

测试代码引用是否正常工作

  1. 新建一个 JS 文件(如 fizz-buzz.js
  2. 输入 function fizzBuzz(,等待 Copilot 建议并接受
  3. 查看对应 IDE 的日志,应该会出现新的代码匹配记录

常见问题

Q: 为什么我看不到任何代码引用日志?

A: 检查两点:① 设置中是否启用了匹配公开代码的建议;② 是否在正确的日志面板中查看。VS Code 需要在 Output 下拉中手动切换到"GitHub Copilot Log (Code References)"。

Q: 日志显示 NOASSERTION 是什么意思?

A: 表示匹配的公开代码没有明确声明许可证(或许可证类型无法确定)。在商业项目中使用时需要更谨慎。

Q: 代码引用只在代码补全时出现,还是 Chat 也会记录?

A: 两者都会记录。代码补全在接受建议时记录到日志,Chat 在响应中直接展示"View matches"链接。