为存储库配置内容排除
可以使用存储库设置来指定应忽略的存储库 GitHub Copilot 中的内容。
注意
GitHub Copilot 命令行界面 (CLI)、 Copilot云代理和 IDE 中的 副驾驶聊天 代理模式不支持内容排除。 有关这些Copilot功能的详细信息,请参阅[AUTOTITLE](/copilot/concepts/agents/about-copilot-cli)、[AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent) 和[AUTOTITLE](/copilot/how-tos/chat-with-copilot/chat-in-ide)。
-
在 GitHub 上,导航到存储库的主页面。
-
在仓库名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

-
在边栏的“代码和自动化”部分中,单击 Copilot,然后单击 内容排除。
如果你的存储库从其父组织或同一企业中的组织继承了任何排除项,那么你将在页面顶部看到一个或多个灰色框,其中包含这些排除项的详细信息。 你无法编辑这些设置。
-
在“此存储库中要排除的路径”下方的框中,输入 Copilot 应排除的文件路径。
使用格式:
- "/PATH/TO/DIRECTORY/OR/FILE",每条路径单独一行。 可以通过以#开头的行来添加注释。提示
可以使用 fnmatch 模式匹配表示法来指定文件路径。 模式不区分大小写。 请参阅 ruby-doc.org 文档中的“文件”。
存储库设置中指定的路径示例
# Ignore the `/src/some-dir/kernel.rs` file in this repository. - "/src/some-dir/kernel.rs" # Ignore files called `secrets.json` anywhere in this repository. - "secrets.json" # Ignore all files whose names begin with `secret` anywhere in this repository. - "secret*" # Ignore files whose names end with `.cfg` anywhere in this repository. - "*.cfg" # Ignore all files in or below the `/scripts` directory of this repository. - "/scripts/**"
- "/src/some-dir/kernel.rs"Ignore the /src/some-dir/kernel.rs file in this repository.
- "secrets.json"Ignore files called secrets.json anywhere in this repository.
- "secret*"Ignore all files whose names begin with secret anywhere in this repository.
- "*.cfg"Ignore files whose names end with .cfg anywhere in this repository.
- "/scripts/**"Ignore all files in or below the /scripts directory of this repository.
# Ignore the `/src/some-dir/kernel.rs` file in this repository.
- "/src/some-dir/kernel.rs"
# Ignore files called `secrets.json` anywhere in this repository.
- "secrets.json"
# Ignore all files whose names begin with `secret` anywhere in this repository.
- "secret*"
# Ignore files whose names end with `.cfg` anywhere in this repository.
- "*.cfg"
# Ignore all files in or below the `/scripts` directory of this repository.
- "/scripts/**"
为组织配置内容排除
可以使用组织设置来指定应忽略的文件 GitHub Copilot 。 这些文件可以位于 Git 存储库中,也可以位于不受 Git 控制的文件系统上的任意位置。
-
在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
-
单击以选择一个组织。
-
在组织名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

-
在左侧栏中,单击**Copilot**,然后单击“内容排除”。
-
在“要排除的存储库和路径”框中,输入文件详细信息,以从中排除 Copilot。
若要排除位于任意位置(Git 存储库或其他地方)的文件,请输入
"*":,后跟要排除的一个或多个文件的路径。 如果你要指定多个文件路径模式,请在单独的行上列出每个模式。若要从 CopilotGit 存储库中排除文件,请在一行中输入对存储库的引用,后跟存储库中位置的路径,每个路径位于单独的行中。 使用以下格式,并将
REPOSITORY-REFERENCE替换为对包含要排除的文件的存储库的引用:REPOSITORY-REFERENCE: - "/PATH/TO/DIRECTORY/OR/FILE" - "/PATH/TO/DIRECTORY/OR/FILE" - ...可以使用各种协议来引用存储库。 你可对
REPOSITORY-REFERENCE和 Copilot 使用以下任意语法,无论存储库在本地如何克隆,都会匹配:http[s]://host.xz[:port]/path/to/repo.git/ git://host.xz[:port]/path/to/repo.git/ [user@]host.xz:path/to/repo.git/ ssh://[user@]host.xz[:port]/path/to/repo.git/在计算要忽略存储库的路径时,将忽略
user@的:port和REPOSITORY-REFERENCE部分。对于Azure DevOps,可以在指定
REPOSITORY-REFERENCE时使用新的(dev.azure.com)或旧的(visualstudio.com)主机格式,无论使用哪个主机在本地克隆存储库,Copilot都将匹配它们。提示
可以使用 fnmatch 模式匹配表示法来指定文件路径。 模式不区分大小写。 请参阅 ruby-doc.org 文档中的“文件”。
组织设置中的存储库和路径示例
# Ignore all `.env` files from all file system roots (Git and non-Git). # For example, this excludes `REPOSITORY-PATH/.env` and also `/.env`. # This could also have been written on a single line as: # # "*": ["**/.env"] "*": - "**/.env" # In the `octo-repo` repository in this organization: octo-repo: # Ignore the `/src/some-dir/kernel.rs` file. - "/src/some-dir/kernel.rs" # In the `primer/react` repository on GitHub: https://github.com/primer/react.git: # Ignore files called `secrets.json` anywhere in this repository. - "secrets.json" # Ignore files called `temp.rb` in or below the `/src` directory. - "/src/**/temp.rb" # In the `copilot` repository of any GitHub organization: [email protected]:*/copilot: # Ignore any files in or below the `/__tests__` directory. - "/__tests__/**" # Ignore any files in the `/scripts` directory. - "/scripts/*" # In the `gitlab-org/gitlab-runner` repository on GitLab: [email protected]:gitlab-org/gitlab-runner.git: # Ignore the `/main_test.go` file. - "/main_test.go" # Ignore any files with names beginning with `server` or `session` anywhere in this repository. - "{server,session}*" # Ignore any files with names ending with `.md` or `.mk` anywhere in this repository. - "*.m[dk]" # Ignore files directly within directories such as `packages` or `packaged` anywhere in this repository. - "**/package?/*" # Ignore files in or below any `security` directories, anywhere in this repository. - "**/security/**"
"*":
- "**/.env"Ignore all .env files from all file system roots (Git and non-Git).
For example, this excludes REPOSITORY-PATH/.env and also /.env.
This could also have been written on a single line as:
"*": ["**/.env"]
octo-repo:In the octo-repo repository in this organization:
- "/src/some-dir/kernel.rs"Ignore the /src/some-dir/kernel.rs file.
https://github.com/primer/react.git:In the primer/react repository on GitHub:
- "secrets.json"Ignore files called secrets.json anywhere in this repository.
- "/src/**/temp.rb"Ignore files called temp.rb in or below the /src directory.
[email protected]:*/copilot:In the copilot repository of any GitHub organization:
- "/__tests__/**"Ignore any files in or below the /__tests__ directory.
- "/scripts/*"Ignore any files in the /scripts directory.
[email protected]:gitlab-org/gitlab-runner.git:In the gitlab-org/gitlab-runner repository on GitLab:
- "/main_test.go"Ignore the /main_test.go file.
- "{server,session}*"Ignore any files with names beginning with server or session anywhere in this repository.
- "*.m[dk]"Ignore any files with names ending with .md or .mk anywhere in this repository.
- "**/package?/*"Ignore files directly within directories such as packages or packaged anywhere in this repository.
- "**/security/**"Ignore files in or below any security directories, anywhere in this repository.
# Ignore all `.env` files from all file system roots (Git and non-Git).
# For example, this excludes `REPOSITORY-PATH/.env` and also `/.env`.
# This could also have been written on a single line as:
#
# "*": ["**/.env"]
"*":
- "**/.env"
# In the `octo-repo` repository in this organization:
octo-repo:
# Ignore the `/src/some-dir/kernel.rs` file.
- "/src/some-dir/kernel.rs"
# In the `primer/react` repository on GitHub:
https://github.com/primer/react.git:
# Ignore files called `secrets.json` anywhere in this repository.
- "secrets.json"
# Ignore files called `temp.rb` in or below the `/src` directory.
- "/src/**/temp.rb"
# In the `copilot` repository of any GitHub organization:
[email protected]:*/copilot:
# Ignore any files in or below the `/__tests__` directory.
- "/__tests__/**"
# Ignore any files in the `/scripts` directory.
- "/scripts/*"
# In the `gitlab-org/gitlab-runner` repository on GitLab:
[email protected]:gitlab-org/gitlab-runner.git:
# Ignore the `/main_test.go` file.
- "/main_test.go"
# Ignore any files with names beginning with `server` or `session` anywhere in this repository.
- "{server,session}*"
# Ignore any files with names ending with `.md` or `.mk` anywhere in this repository.
- "*.m[dk]"
# Ignore files directly within directories such as `packages` or `packaged` anywhere in this repository.
- "**/package?/*"
# Ignore files in or below any `security` directories, anywhere in this repository.
- "**/security/**"
为企业配置内容排除
作为企业所有者,可以使用企业设置来指定应忽略的文件 GitHub Copilot 。 这些文件可以位于 Git 存储库中,也可以位于不受 Git 控制的文件系统上的任意位置。
- 导航到您的企业。 例如,从 GitHub.com 上的 公司 页面。
- 在页面顶部,单击 AI 控件。
- 在边栏中,单击 Copilot**。
- 单击“ 内容排除”。
- 使用路径指定要排除的内容。 请参阅上一部分:为组织配置内容排除。
注意
在企业级别设置内容排除与组织级别的主要区别在于,在企业级别设置的规则适用于 Copilot 企业中的所有用户,而组织所有者设置的规则仅适用于由该组织分配 Copilot 席位的用户。
测试对内容排除所做的更改
你可以使用 IDE 来确认对内容排除所做的更改是否正常运行。
将内容排除更改传播到 IDE
添加或更改内容排除项后,可能需要长达 30 分钟才能在已加载设置的 IDE 中生效。 如果你不想等待,则可以使用以下说明手动重新加载内容排除设置。
-
**对于 JetBrains IDE 和 Visual Studio**,关闭并重新打开应用以重新加载内容排除设置。 - 对于 Visual Studio Code,请使用以下步骤重新加载内容排除设置:
- 访问命令面板。 例如,按Shift+Command+P(Mac)/ Ctrl+Shift+P(Windows/Linux)。
- 键入:
reload。 - 选择“开发人员:重新加载窗口”****。
- 对于 Vim/Neovim,每次打开文件时,都会自动提取 GitHub 内容排除项。
测试内容排除
你可以验证配置的内容排除是否正常运行。
- 首先确认内容排除在不受内容排除约束的文件中是否正常工作。 要执行此操作:
- 在 IDE 中,打开不受内容排除约束的文件。
- 进行通常会生成内联建议的编辑。 系统应该会提供建议
- 打开应排除的文件并进行相同的编辑。 系统应该不会提供建议。
- 要测试 副驾驶聊天 的内容排除:
-
在你的 IDE 中打开 副驾驶聊天 面板。
-
打开应排除的文件并关闭编辑器中打开的任何其他文件。
-
确保打开的文件已附加到提示来作为上下文文件。
-
输入提示
explain this file。如果排除了该文件, 副驾驶聊天 则无法使用该文件生成响应。 该文件不会作为 Copilot 响应中的引用列出。
-
使用 REST API 管理内容排除项
组织所有者和企业所有者还可以使用 GitHub REST API 以编程方式管理内容排除。
有关详细信息,请参阅“用于Copilot内容排除管理的 REST API 端点”。
其他阅读材料
- GitHub Copilot 的内容排除功能
- 查看对 GitHub Copilot 的内容排除项的更改
-
[在 Microsoft Learn 文档中配置 Visual Studio](https://learn.microsoft.com/en-us/visualstudio/ide/visual-studio-github-copilot-admin?view=vs-2022#configure-content-exclusion) 的内容排除