本文档的此版本适用于 JetBrains IDE 中的 Copilot。若需在其他平台使用 Copilot,请点击上方相应的标签。
本文档的此版本适用于 Visual Studio Code 中的 Copilot。若需在其他平台使用 Copilot,请点击上方相应的标签。
本文档的此版本适用于 GitHub 网站上的 Copilot。若需在其他平台使用 Copilot,请点击上方相应的标签。
本文档的此版本适用于 Visual Studio 中的 Copilot。若需在其他平台使用 Copilot,请点击上方相应的标签。
简介
如果您允许 GitHub Copilot 提出与公开可用代码匹配的建议,或使用不支持“阻止”(Block)模式的产品,Copilot 将显示发现的任何相似代码的引用。参见 GitHub Copilot 代码引用。
先决条件
仅在您使用不支持“阻止”模式的产品,或 Copilot 已配置为允许匹配公开可用代码的建议时,才会生成匹配代码的引用。这可以在您的个人设置或组织设置中进行配置。
欲了解更多信息,请参阅 个人订阅者的 GitHub Copilot 策略管理 或 组织中 GitHub Copilot 策略与功能的管理。
查看内联建议的代码引用
您可以在 JetBrains IDE 的日志文件中查看代码引用。
-
在 JetBrains IDE 中,选择 Help > Show Log in Finder/Explorer。
日志文件会在文件管理器中打开。例如,IntelliJ IDEA 的日志文件名为
idea.log。 -
在 JetBrains IDE 中打开日志文件。
-
搜索 “[Public Code References]”。
示例日志条目
2025-02-26 09:22:12,045 [5581906] INFO - #copilot - [Public Code References] Text found matching public code in file:///Users/mona-lisa/git-repos/test-repo/fizzbuzz.js [Ln 1, Col 10] near fizzBuzz() ...:
1) [NOASSERTION] https://github.com/nixsticks/todos/blob/ae427a721c7784da64a619ba17f60637fe1cc819/Loops/fizzbuzz/fizzbuzz.js
2) [GPL-3.0] https://github.com/voloslg/algocasts/blob/34b423517486f908ca167b390d3b8bd05653829f/exercises/fizzbuzz/index.js
日志条目包含以下细节
- 您接受建议的日期和时间。
- 一条 “Public Code References” 消息,指示发现了相似代码。
- 添加了建议的文件路径。
- 添加建议的行号和列号。
- 匹配列表,其中包括
- 匹配代码的许可证类型——如果未找到许可证,则显示
NOASSERTION。 - 在 GitHub.com 上找到匹配代码的文件 URL。
- 匹配代码的许可证类型——如果未找到许可证,则显示
验证代码引用功能
您可以通过让 Copilot 添加一些常用代码并检查日志输出来验证代码引用是否正常工作。
-
创建一个名为
fizz-buzz.js的文件并在编辑器中打开。 -
按照前一节所述显示日志。
-
在编辑器中键入
function fizzBuzz()在闭括号后加一个空格。
GitHub Copilot 应该会建议完成该函数的代码。通常该建议是 fizz buzz 算法的常见实现,会匹配 GitHub 网站上公开可用的代码。
-
要接受建议,请按 Tab。
-
检查日志中是否已添加任何相似代码的条目。
查看内联建议的代码引用
您可以在 Visual Studio Code 中的某个 GitHub Copilot 日志里找到代码引用。
-
在 Visual Studio Code 中,选择菜单栏的 View > Output 打开 Output 窗口。
-
在 Output 窗口右侧的下拉菜单中,选择 GitHub Copilot Log (Code References)。
-
在使用 Visual Studio Code 中的 GitHub Copilot 时,请保持 GitHub Copilot Log (Code References) 视图打开。
当您接受与公共 GitHub 仓库中代码匹配的内联建议时,日志会添加一条条目。
日志条目包含以下细节
- 您接受建议的日期和时间。
- 添加了建议的文件名。
- “Similar code at” 后跟建议添加所在文件的位置。
- 内联建议所添加代码的摘录。
- 如果找到了匹配代码的许可证类型,则显示该许可证;否则显示
unknown。 - 在 GitHub.com 上找到相似代码的文件 URL。
示例日志条目
2025-03-27 12:17:54.759 [info] file:///Users/monalisa/fizzbuzz.js Similar code at [Ln 2, Col 8] let i = 1; i <= 100; i++) { let output = ''; if (i % 3 === 0) { output += 'Fizz';...
2025-03-27 12:17:54.759 [info] License: unknown, URL: https://github.com/octo-org/octo-repo/blob/8563f3b1d4f33952b22212b86e745539d1567ed1/examples/fizzBuzz.js
2025-03-27 12:17:54.759 [info] License: MIT, URL: https://github.com/octo-org/monalisa/blob/7e974691f4c8e6bc55f9b50688f05d746d1bc52b/exercises/2/fizz-buzz.js
验证代码引用功能
您可以通过让 Copilot 添加一些常用代码并检查日志输出来验证代码引用是否正常工作。
-
创建一个名为
fizz-buzz.js的文件并在编辑器中打开。 -
按照前一节所述显示日志。
-
在编辑器中键入
function fizzBuzz()在闭括号后加一个空格。
GitHub Copilot 应该会建议完成该函数的代码。通常该建议是 fizz buzz 算法的常见实现,会匹配 GitHub 网站上公开可用的代码。
-
要接受建议,请按 Tab。
-
检查日志中是否已添加任何相似代码的条目。
查看内联建议的代码引用
您可以在 Visual Studio 中的 GitHub Copilot 日志里找到代码引用。
-
在菜单栏中,点击 View。
-
在下拉菜单中,点击 Output。
-
在 Output 视图中,点击 “Show output from” 右侧的框并选择 GitHub Copilot。
-
在使用 Visual Studio Code 中的 GitHub Copilot 时,请保持日志显示。
当您接受与公共 GitHub 仓库中代码匹配的内联建议时,日志会添加一条条目。
日志条目包含以下细节
- 您接受建议的时间。如果未显示时间,请点击 “Show Timestamp” 时钟图标。
- 描述
[Completions Public Code Match Information]。 - 匹配代码的许可证类型,如果找不到则为
NOASSERTION。 - 在 GitHub.com 上找到相似代码的文件 URL。
示例日志条目
09:39:16:203 [Completions Public Code Match Information] Similar code with license type [MIT] https://github.com/octo-org/octo-repo/blob/34deb75eb6a2e22483ed465a6aec38c02eb2536e/routines/quicksort.js
验证代码引用功能
您可以通过让 Copilot 添加一些常用代码并检查日志输出来验证代码引用是否正常工作。
-
创建一个名为
fizz-buzz.js的文件并在编辑器中打开。 -
按照前一节所述显示日志。
-
在编辑器中键入
function fizzBuzz()在闭括号后加一个空格。
GitHub Copilot 应该会建议完成该函数的代码。通常该建议是 fizz buzz 算法的常见实现,会匹配 GitHub 网站上公开可用的代码。
-
要接受建议,请按 Tab。
-
检查日志中是否已添加任何相似代码的条目。
查看 Copilot 聊天的代码引用
如果 Copilot 聊天的回复中包含匹配代码,会在回复末尾显示以下文本
Similar code found with n license types - View matches
-
点击 View matches 可在新编辑器标签页中显示匹配代码的详细信息。
对于每个匹配代码示例,编辑器会显示
- 已知的匹配代码许可证类型。
- 在 GitHub.com 上找到匹配代码的文件 URL。
- 展示匹配代码的代码片段。
-
在编辑器中,Ctrl+点击(Windows/Linux)或 Command+点击(Mac)URL 可在 GitHub.com 上查看完整文件。
如果 Copilot 聊天的回复中包含匹配代码,会在回复末尾显示以下文本
Similar code found with n license types - View matches
-
点击 View matches 可在新编辑器标签页中显示匹配代码的详细信息。
对于每个匹配代码示例,编辑器会显示
- 已知的匹配代码许可证类型。
- 在 GitHub.com 上找到匹配代码的文件 URL。
- 展示匹配代码的代码片段。
-
在编辑器中,Ctrl+点击(Windows/Linux)或 Command+点击(Mac)URL 可在 GitHub.com 上查看完整文件。
如果 Copilot 聊天的回复中包含匹配代码,会在建议代码下方显示以下文本
Found similar code in public repos. View matches
点击 View matches 可打开 GitHub Copilot 日志(如果尚未打开),并添加匹配代码的详细信息。
这些详细信息包括
- 您向日志添加详细信息的时间。如果未显示时间,请点击 “Show Timestamp” 时钟图标。
- 描述
[Code Match],作为匹配代码列表之前的第一条日志条目。 - 如果找到了匹配代码,每个相似代码实例的许可证类型。
- 在 GitHub.com 上找到匹配代码的文件 URL。
- 展示匹配代码的代码片段。
日志示例
09:24:10:525 [Code Match] Similar code with 2 license type(s) [MIT, NOASSERTION]
09:24:10:525 ## License: MIT
09:24:10:525 https://github.com/octo-org/octo-repo/tree/127aac4ab27a42706af01be80f7aae3b83f44fbc/buzzfizz.py
09:24:10:525 ```
09:24:10:525 for i in range(1, n + 1):
09:24:10:525 if i % 3 == 0 and i % 5 == 0:
09:24:10:525 print('FizzBuzz')
09:24:10:525 elif i % 3 == 0:
09:24:10:525 print('Fizz')
09:24:10:525 elif i % 5 == 0:
09:24:10:525 ```
09:24:10:525 ## License: NOASSERTION
09:24:10:525 https://github.com/octo-org/monalisa/tree/011308746e53b26b128fa53c044a2527c39231f0/fizz-buzz.py
09:24:10:525 ```
09:24:10:525 i % 3 == 0 and i % 5 == 0:
09:24:10:525 print('FizzBuzz')
09:24:10:525 elif i % 3 == 0:
09:24:10:525 print('Fizz')
09:24:10:525 elif i % 5 == 0:
09:24:10:525 print('Buzz')
09:24:10:525 else:
09:24:10:525 print(i)
09:24:10:525 ```
查看 Copilot 聊天的代码引用
当 Copilot 聊天的回复包含与公共 GitHub 仓库中代码匹配的代码时,这一信息会显示在代码建议下方
< > Public code references from n repositories
要查看匹配代码的详细信息
-
点击代码建议下方的 “Public code references...” 文本。
会在下拉列表中显示包含匹配代码的 GitHub 仓库列表,以及(如果找到)其许可证信息。

-
点击仓库名称即可在 GitHub.com 上打开该仓库。
查看 Copilot 云代理的代码引用
当 Copilot 的回复包含与公共 GitHub 仓库中代码匹配的代码时,代理会话日志中会包含一个链接,用于显示匹配代码的详细信息。更多信息请参阅 跟踪 GitHub Copilot 的会话。