# 查找与 GitHub Copilot 建议匹配的公共代码

了解如何在GitHub Copilot 提供与公开代码匹配的建议时查看代码引用。

<div class="ghd-tool jetbrains">

本文此版本适用于 JetBrains IDE 中的 Copilot。 其他平台上的 Copilot，请单击上方相应选项卡。

</div>

<div class="ghd-tool vscode">

本文此版本适用于 Copilot 中的 Visual Studio Code。 其他平台上的 Copilot，请单击上方相应选项卡。

</div>

<div class="ghd-tool webui">

本文此版本适用于 Copilot 网站上的 GitHub。 其他平台上的 Copilot，请单击上方相应选项卡。

</div>

<div class="ghd-tool visualstudio">

本文此版本适用于 Copilot 中的 Visual Studio。 其他平台上的 Copilot，请单击上方相应选项卡。

</div>

## 简介

如果允许 GitHub Copilot 提供与公开可用的代码匹配的建议或使用不支持“阻止”模式的产品， Copilot 将显示对找到的任何类似代码的引用。 请参阅“[GitHub Copilot代码引用](/zh/enterprise-cloud@latest/copilot/concepts/completions/code-referencing)”。

### Prerequisites

仅在使用不支持“阻止”模式的产品时，或当 Copilot 配置为允许与公开可用代码匹配的建议时，才会生成对匹配代码的引用。 这是在你的个人或或企业设置中配置的。

有关详细信息，请参阅 [以个人订阅者身份管理 GitHub Copilot 策略](/zh/enterprise-cloud@latest/copilot/how-tos/manage-your-account/manage-policies#enabling-or-disabling-suggestions-matching-public-code)、[管理组织中GitHub Copilot的策略和功能](/zh/enterprise-cloud@latest/copilot/how-tos/administer-copilot/manage-for-organization/manage-policies#enabling-copilot-features-and-models-in-your-organization) 或 [](/zh/enterprise-cloud@latest/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-enterprise-policies)。

<div class="ghd-tool jetbrains">

## 查看内联建议的代码引用

可以在 JetBrains IDE 的日志文件中查看代码引用。

1. 在 JetBrains IDE 中，选择“帮助”\*\*\*\* > \*\*\*\*“在 Finder/Explorer 中显示日志”。

   日志文件显示在文件管理器中。 例如，对于 IntelliJ IDEA，日志文件称为 `idea.log`。

2. 在 JetBrains IDE 中打开日志文件。

3. 搜索“\[Public Code References]”。

### 日志条目示例

```text
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
```

该日志项目包含以下详细信息：

* 你接受建议的日期和时间。
* “公开代码引用”消息将告知你已找到类似代码。
* 在其中添加了建议的文件的路径。
* 添加建议的行号和列号。
* 匹配项列表，包括：
  * 匹配代码的许可证类型（如果未找到许可证，则为 `NOASSERTION`）。
  * 找到匹配代码的文件 GitHub.com 的 URL。

### 验证代码引用功能

可以通过提示 Copilot 添加一些常用代码并检查日志中的输出来验证代码引用是否正常工作。

1. 创建名为 `fizz-buzz.js` 的文件，并在编辑器中打开它。

2. 显示前一节中描述的日志。

3. 在编辑器中，键入：

   ```javascript
   function fizzBuzz()
   ```

   在右括号后加一个空格。

   GitHub Copilot 应会建议可用来完成函数的代码。 通常，建议会是一个常见的 fizz buzz 算法的实现，它将与 GitHub 网站上正式发布的代码匹配。

4. 要接受建议，请按 <kbd>Tab</kbd>。

5. 检查是否已将类似代码的任何条目添加到日志中。

</div>

<div class="ghd-tool vscode">

## 查看内联建议的代码引用

可以在GitHub Copilot中的某个Visual Studio Code日志中找到代码引用。

1. 在Visual Studio Code菜单中，通过选择“**查看**\*\*\*\* > ”来打开“**输出**”窗口。
2. 在 **“输出**”窗口右侧的下拉菜单中，选择“**日志”GitHub Copilot（代码引用）。**
3. 在 GitHub Copilot 中使用 \*\*\*\* 时，保持 GitHub Copilot视图显示。

   接受与公共 GitHub 存储库中的代码匹配的内联建议时，会将一个条目添加到日志中。

   该日志项目包含以下详细信息：

   * 你接受建议的日期和时间。
   * 在其中添加了建议的文件的名称。
   * “类似代码位于”后跟在文件中添加建议的位置。
   * 内联建议添加的代码摘录。
   * 匹配代码的许可证类型（如果找到），否则为 `unknown`。
   * GitHub.com 上找到相似代码的文件 URL。

### 日志条目示例

```text
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 添加一些常用代码并检查日志中的输出来验证代码引用是否正常工作。

1. 创建名为 `fizz-buzz.js` 的文件，并在编辑器中打开它。

2. 显示前一节中描述的日志。

3. 在编辑器中，键入：

   ```javascript
   function fizzBuzz()
   ```

   在右括号后加一个空格。

   GitHub Copilot 应会建议可用来完成函数的代码。 通常，建议会是一个常见的 fizz buzz 算法的实现，它将与 GitHub 网站上正式发布的代码匹配。

4. 要接受建议，请按 <kbd>Tab</kbd>。

5. 检查是否已将类似代码的任何条目添加到日志中。

</div>

<div class="ghd-tool visualstudio">

## 查看内联建议的代码引用

可以在GitHub Copilot日志中找到Visual Studio代码引用。

1. 在菜单栏中，单击“视图”\*\*\*\*。
2. 在下拉菜单中，单击“输出”\*\*\*\*。
3. 在“输出”视图中，单击“显示输出发件人”右侧的框，然后选择 **GitHub Copilot**。
4. 在 GitHub Copilot 中使用 Visual Studio Code 时，保持日志显示。

   接受与公共 GitHub 存储库中的代码匹配的内联建议时，会将一个条目添加到日志中。

   该日志项目包含以下详细信息：

   * 接受建议的时间。 如果未显示时间，则单击“显示时间戳”时钟图标。
   * 说明 `[Completions Public Code Match Information]`。
   * 匹配代码的许可证类型（如果找到），否则为 `NOASSERTION`。
   * GitHub.com 上找到相似代码的文件 URL。

### 日志条目示例

```text
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 添加一些常用代码并检查日志中的输出来验证代码引用是否正常工作。

1. 创建名为 `fizz-buzz.js` 的文件，并在编辑器中打开它。

2. 显示前一节中描述的日志。

3. 在编辑器中，键入：

   ```javascript
   function fizzBuzz()
   ```

   在右括号后加一个空格。

   GitHub Copilot 应会建议可用来完成函数的代码。 通常，建议会是一个常见的 fizz buzz 算法的实现，它将与 GitHub 网站上正式发布的代码匹配。

4. 要接受建议，请按 <kbd>Tab</kbd>。

5. 检查是否已将类似代码的任何条目添加到日志中。

</div>

## 查看 Copilot Chat 的代码引用

<div class="ghd-tool jetbrains">

如果 Copilot Chat 中的响应包含匹配代码，则会在响应末尾通过以下文本指明：

> 找到具有 *n* 种许可证类型的类似代码 - **查看匹配项**

1. 单击“**查看匹配项**”以在新编辑器选项卡中显示匹配代码的详细信息。

   对于匹配代码的每个示例，编辑器显示：

   * 匹配代码的许可证类型（如果已知）。
   * 在 GitHub.com 上找到匹配代码的文件的 URL。
   * 显示匹配代码的代码片段。

2. 在编辑器中，按下 <kbd>Ctrl</kbd> 并单击 (Windows/Linux) 或按下 <kbd>Command</kbd> 并单击 (Mac) 即可查看 GitHub.com 上的完整文件。

</div>

<div class="ghd-tool vscode">

如果 Copilot Chat 中的响应包含匹配代码，则会在响应末尾通过以下文本指明：

> 找到具有 *n* 种许可证类型的类似代码 - **查看匹配项**

1. 单击“**查看匹配项**”以在新编辑器选项卡中显示匹配代码的详细信息。

   对于匹配代码的每个示例，编辑器显示：

   * 匹配代码的许可证类型（如果已知）。
   * 在 GitHub.com 上找到匹配代码的文件的 URL。
   * 显示匹配代码的代码片段。

2. 在编辑器中，按下 <kbd>Ctrl</kbd> 并单击 (Windows/Linux) 或按下 <kbd>Command</kbd> 并单击 (Mac) 即可查看 GitHub.com 上的完整文件。

</div>

<div class="ghd-tool visualstudio">

如果 Copilot Chat 中的响应包含匹配代码，会在建议代码下方显示以下文本：

> 在公共repos中找到类似的代码。
> **查看匹配项**

单击“ **查看匹配项** ”以打开 GitHub Copilot 日志（如果尚未打开），并添加匹配代码的详细信息。

详细信息包括：

* 将详细信息添加到日志的时间。 如果未显示时间，则单击“显示时间戳”时钟图标。
* 将说明 `[Code Match]` 作为匹配代码列表前的第一个日志条目。
* 每个类似代码实例的许可证类型（如果找到）。
* 找到匹配代码的文件 GitHub.com 的 URL。
* 显示匹配代码的代码片段。

### 日志记录示例

````text
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    ```
````

</div>

<div class="ghd-tool webui">

## 查看 Copilot Chat 的代码引用

当 Copilot Chat 提供包含与公共 GitHub 存储库代码匹配的响应时，会在代码建议下方标注：

> < > 来自 *n* 个存储库的公开代码引用

查看匹配代码的详细信息：

1. 单击代码建议下的“公开代码引用...”文本。

   包含匹配代码的 GitHub 存储库列表显示在下拉列表中（如果找到）以及许可信息。

   ![Copilot Chat 中的内联建议截图，其中有用于查看代码引用的链接。](/assets/images/help/copilot/code-reference-dotcom.png)

2. 单击存储库的名称以显示该存储库。GitHub.com

## 查看 Copilot cloud agent 的代码引用

当提供包含与公共Copilot存储库中的代码匹配的代码的响应时GitHub，代理会话日志中会显示一个链接以显示匹配代码的详细信息。 有关详细信息，请参阅“[管理智能体会话](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents)”。

</div>

## 其他阅读材料

* [GitHub Copilot代码引用](/zh/enterprise-cloud@latest/copilot/concepts/completions/code-referencing)