Skip to main content

在 GitHub 中向 GitHub Copilot 提问

可以使用 GitHub Copilot Chat in GitHub 回答有关软件开发的一般问题,或有关存储库中的问题或代码的特定问题。

概述

GitHub Copilot Chat in GitHub 是一个聊天界面,可允许在 GitHub 上询问编码相关问题并接收答案。

Copilot Chat 可帮助你完成各种编码相关任务,例如提供代码建议、提供代码片段功能和用途的自然语言说明、为代码生成单元测试,以及为代码中的 bug 建议修复。 有关详细信息,请参阅“在 GitHub 中负责任地使用 GitHub Copilot 聊天”。

在 GitHub 上,可以使用 Copilot Chat 询问以下问题:

限制

  • 在某些情况下,如果将非常大的文件或大量文件用作问题上下文,则 Copilot Chat 的结果质量可能会降级。

由技能提供支持

使用 GPT-4o 和 Claude 3.5 Sonnet 模型时,Copilot 可以访问一组技能,从 GitHub 获取数据,这些技能会根据你提问的问题动态进行选择。 可以通过单击 展开聊天窗口中的状态信息,以判断所使用的技能 Copilot。

Copilot 聊天面板的屏幕截图,其中展开了状态信息,并在橙色轮廓中突出显示了所使用的技能。

可以明确要求 GitHub Copilot Chat in GitHub 使用某个特定技能,例如 Use the Bing skill to find the latest GPT4 model from OpenAI

当前可用的技能

可以通过询问 Copilot 来生成当前可用的技能列表:What skills are available?

可在 Copilot Chat in GitHub 中使用的技能包括下表中显示的技能。

技能说明默认情况下是否启用?示例问题
提交详细信息检索一组提交内容或特定提交内容,以提供与提交内容相关的问题的答案。Explain the changes in the code of this commit
讨论详细信息检索特定的 GitHub 讨论。 这对于快速获取讨论中的对话 Gist 非常有用。Summarize this discussion
文件详细信息检索 Git 存储库中默认分支的特定文件,以方便你询问有关该文件以及最近更改的问题。 当你在存储库中提供文件的确切路径时,此技能非常有用。What logic does user_auth.js encapsulate?

What is the file history of user_auth.js?
GitHub Advanced Security从 GitHub Advanced Security 功能(code scanning、secret scanning 和 Dependabot alerts)检索有关组织内安全警报的信息。How would I fix this code scanning alert?
问题详细信息检索特定 GitHub 问题,包括问题的标题、编号、作者、状态、正文、链接的拉取请求、注释和时间戳。Summarize the conversation on this issue and suggest next steps
词法代码搜索Git 存储库默认分支中的关键字代码搜索。 当想要了解代码中存在的特定函数、方法或关键字时,此技能很有用。 此技能利用 GitHub 搜索的大多数功能,例如 symbolpathFind me the tests for the GitService class
拉取请求详细信息检索特定的拉取请求。 这有利于你询问有关该拉取请求的问题,包括获取拉取请求的摘要、其注释或更改的代码。Summarize this PR for me

Summarize the changes in this PR
版本详细信息检索最新版本或指定版本。 这样即可了解谁创建了发布、何时创建的发布以及发行说明中包含的信息。When was the latest release?
存储库详细信息检索特定的 GitHub 存储库。 这对于查找详细信息(例如存储库所有者和使用的主要语言)非常有用。Tell me about this repo
语义代码搜索Git 存储库默认分支中的自然语言语义代码搜索。 当想要了解代码中实现某些功能的位置或方式时,此技能非常有用。

适用于具有任何订阅的所有公共和专用存储库。
How does this repo manage HTTP requests and responses?
支持搜索GitHub 支持门户 检索信息。 此技能可用于向 Copilot Chat 询问有关 GitHub 产品和支持相关问题。Can I use Copilot knowledge bases with Copilot Individual?
Web 搜索使用必应搜索引擎搜索网页。 此技能允许 Copilot 访问有关近期事件、新发展、趋势、技术或极为具体、详细或小众的主题的信息。

对于 Copilot Individual:
在用户设置中启用。

对于 Copilot Business:

在组织设置中启用。
What are some recent articles about SAT tokens securing against vulnerabilities in Node?

Copilot Chat 的 AI 模型

Note

Copilot Chat 中的多模型支持为 公共预览版,可能会更改。

Copilot Chat 的 AI 模型的限制

  • 如果希望在 GitHub 网站上使用上表中列出的技能,则仅支持 GPT-4o 和 Claude 3.5 Sonnet 模型。
  • 试验性预发布版本的模型可能无法与所有筛选器进行正确地交互,包括重复检测筛选器。

更改 AI 模型

Note

如果使用 Copilot Extensions,它们可能会替代所选的模型。

如果通过 订阅访问 Copilot Chat,则组织必须赋予成员切换到不同模型的能力。 请参阅“管理组织中的 Copilot 策略””。

  1. 在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。

  2. 如果面板包含与 Copilot 的前一次对话,请单击面板右上角的

    “新建对话”按钮的屏幕截图,以深橙色边框突出显示。

  3. 在面板的右上角,单击“ 进入沉浸式对话”****。 多模型 Copilot Chat 目前仅支持沉浸式视图。

  4. 在沉浸式视图左上角,选择当前模型 下拉菜单,然后单击所选的 AI 模型。

询问有关软件开发的一般问题

可以询问与软件开发有关,但非侧重于特定上下文的一般问题,例如存储库。

根据询问的问题和企业及组织设置,Copilot 可能会根据必应搜索结果使用信息做出响应。 使用必应搜索,Copilot 可以根据 Internet 上当前提供的信息,用最新的详细信息回答各种与技术相关的问题。 若要了解如何启用或禁用必应搜索集成,请参阅“以单个订阅者身份管理 Copilot 策略”和“管理企业中 Copilot 的策略和功能”。

Note

必应搜索集成到 Copilot Chat in GitHub 目前为 公共预览版,可能会更改。

  1. 在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。

    此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。

  2. 如果面板包含与 Copilot 的前一次对话,请单击面板右上角的“新建对话”图标(加号)。

    “新建对话”按钮的屏幕截图,以深橙色边框突出显示。

  3. 如果面板标题为“讨论所有者/存储库”,请单击“所有存储库”****。

    Copilot 聊天面板页面的屏幕截图,其中“所有存储库”以深橙色边框突出显示。

  4. 如果面板中显示“询问 Copilot”页面,请单击“常规用途聊天”****。

    Copilot 聊天面板的屏幕截图,其中“常规用途聊天”以深橙色边框突出显示。

  5. 在面板底部的“询问 Copilot”框中,键入问题,然后按 Enter 键

    可以询问的一般问题的部分示例包括:

    • Go 编程语言的优点是什么?
    • 什么是敏捷软件开发?
    • 最热门的 JavaScript 框架是什么?
    • 给我一些正则表达式的示例。
    • 编写 bash 脚本以输出今天的日期。
  6. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

  7. 如果 Copilot 使用必应搜索来回答问题,则响应上方会显示“来自必应的结果”。 单击此项可查看 Copilot 用于回答问题的搜索结果。

  8. 在对话主题中,可以提出后续问题。 Copilot 将根据对话上下文回答。 例如,可以键入“告诉我更多”以便让 Copilot 对其最后一条评论进行扩展。

    可以将初始问题用作后续问题的基础。 详细的基础提示可以帮助 Copilot 提供和后续问题更相关的答案。 有关详细信息,请参阅 GitHub 博客上的提示 GitHub Copilot Chat 成为你的个人 AI 助手以实现辅助功能

  9. 要重新加入你之前与 Copilot 的对话,请选择 下拉菜单,然后单击“ View all conversations”****。

询问有关存储库的探索性问题

Copilot 允许你使用自然语言问题来浏览 GitHub 上的存储库。 这有助于更好地了解在何处实现代码库的特定方面。

  1. 在 GitHub 网站上,转到想要聊天讨论的存储库。

  2. 在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。

    此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。

  3. 面板顶部的标题应显示为“聊天讨论”,后跟当前存储库的名称。

    如果显示错误的存储库名称,是因为你之前正在聊天讨论另一个存储库,请单击“所有存储库”****,然后选择要聊天讨论的存储库。

    Copilot 聊天面板页面的屏幕截图,其中“所有存储库”以深橙色边框突出显示。

  4. 在聊天面板底部的“询问 Copilot”框中,键入问题,然后按 Enter 键。

    例如,可以询问:

    • 最新版本是什么时候发布的?
    • 我们 API 中的速率限制在哪里实现?
    • WidgetFactory 类如何工作?
    • 更新电话号码的代码在哪里?
    • 在何处生成 SAT 令牌?
    • 显示分配给 USERNAME 的最近更新的问题
    • 列出有关 SUBJECT 的未解决问题
    • 上次按 USERNAME 合并的 PR 是什么
    • 按 USERNAME 向主分支提交了哪些最新内容

    Copilot 在聊天面板中回复。

    Tip

    如果仓库的语义代码搜索索引是最新的,则 Copilot 在仓库上下文中回答类似这些自然语言问题的能力将得到优化。 有关详细信息,请参阅“为 Copilot 聊天编制存储库索引”。

  5. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

  6. 要重新加入你之前与 Copilot 的对话,请选择 下拉菜单,然后单击“ View all conversations”****。

询问有关特定文件或符号的问题

可以向 Copilot 询问有关存储库中特定文件或符号的信息。

Note

“符号”是代码中的命名实体。 这可以是变量、函数、类、模块或属于代码库的任何其他标识符。

  1. 在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。

    此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。

  2. 如果面板包含与 Copilot 的前一次对话,请单击面板右上角的“新建对话”图标(加号)。

    “新建对话”按钮的屏幕截图,以深橙色边框突出显示。

  3. 如果面板中未显示“询问 Copilot”页面,请单击“所有存储库”****。

    Copilot 聊天面板页面的屏幕截图,其中“所有存储库”以深橙色边框突出显示。

  4. 在“询问 Copilot”页面上,选择一个存储库,为问题提供上下文。

    例如,可以一个选择想要更好地了解其代码的存储库。

    如果没有看到想要使用的存储库,可以进行搜索。

  5. 单击聊天面板底部的“附加文件或符号”按钮(一个回形针图标),然后搜索并选择一个或多个文件和符号。

    “附加文件或符号”按钮的屏幕截图,以深橙色边框突出显示。

  6. 在“询问 Copilot”框中,键入问题,然后按 Enter 键

    Copilot 在聊天面板中回复。

    Tip

    如果仓库的语义代码搜索索引是最新的,则 Copilot 在仓库上下文中回答类似这些自然语言问题的能力将得到优化。 有关详细信息,请参阅“为 Copilot 聊天编制存储库索引”。

  7. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

  8. 要重新加入你之前与 Copilot 的对话,请选择 下拉菜单,然后单击“ View all conversations”****。

询问有关特定代码块的问题

可以与 Copilot 聊天,了解存储库中的文件,或文件中的特定代码行。

  1. 在 GitHub 中,导航到一个存储库并打开一个文件。

  2. 执行下列操作之一:

    • 要询问有关整个文件的问题,请单击文件视图右上角的 Copilot 图标 ()。

      Copilot 按钮的屏幕截图,在文件视图顶部以深橙色边框突出显示。

    • 询问有关文件中特定行的问题:

      1. 通过单击要选择的第一行的行号,按住 Shift 并单击要选择的最后一行的行号来选择多行。
      2. 要询问有关所选行的问题,请单击所选内容右侧的 Copilot 图标 ()。 这将显示 GitHub Copilot Chat 面板,并将所选行作为问题的上下文。
      3. 要提出预定义的问题,请单击 Copilot 图标旁的向下按钮,然后选择其中一个选项。

      屏幕截图显示了用深橙色轮廓突出显示的 Copilot 按钮,位于一些选定代码的右侧。

  3. 如果单击 Copilot 图标,请在聊天面板底部的“向 Copilot 询问问题”框中键入问题,然后按 Enter

    例如,如果要询问整个文件,可以输入:

    • 说明此文件。
    • 如何改进此代码?
    • 如何测试此脚本?

    如果要询问特定行,则可以输入:

    • 说明所选行中的函数。
    • 如何改进此类?
    • 向此代码添加错误处理。
    • 编写此方法的单元测试。

    Copilot 将响应面板中的请求。

    对“所选行的函数有什么作用?”问题答复的屏幕截图

  4. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

  5. 可以通过提出后续问题来继续对话。 例如,可以键入“告诉我更多”以便让 Copilot 对其最后一条评论进行扩展。

  6. 要清除、删除或重命名当前对话主题或启动新主题, 请在“询问 Copilot”框中键入 /,从显示的选项中进行选择,然后按 Enter

  7. 要查看沉浸式模式下的对话,仅显示对话会话,单击“ 进入沉浸式对话”****。

询问有关 GitHub Advanced Security 警报的问题

Copilot 允许在 GitHub Advanced Security 功能(code scanning、secret scanning 和 Dependabot alerts 生成安全警报时,使用自然语言问题询问组织内存储库中的这些警报。

  1. 在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。

    此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。

  2. 如果面板包含与 Copilot 的前一次对话,请单击面板右上角的“新建对话”图标(加号)。

    “新建对话”按钮的屏幕截图,以深橙色边框突出显示。

  3. 如果面板中未显示“询问 Copilot”页面,请单击“所有存储库”****。

    Copilot 聊天面板页面的屏幕截图,其中“所有存储库”以深橙色边框突出显示。

  4. 在“询问 Copilot”页面上,选择一个存储库,为问题提供上下文。

    例如,可以选择一个存储库,其中包含你想要更好地了解的安全警报。

    如果没有看到想要使用的存储库,可以进行搜索。

  5. 在“询问 Copilot”框中,键入问题,然后按 Enter 键

    例如,可以询问:

    • 如何修复此警报?
    • 此拉取请求有多少个警报?
    • 此 code scanning 警报引用的是哪一行代码?
    • 此 Dependabot 警报会影响哪个库?

    Copilot 在聊天面板中回复。

    Tip

    如果仓库的语义代码搜索索引是最新的,则 Copilot 在仓库上下文中回答类似这些自然语言问题的能力将得到优化。 有关详细信息,请参阅“为 Copilot 聊天编制存储库索引”。

  6. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

  7. 要重新加入你之前与 Copilot 的对话,请选择 下拉菜单,然后单击“ View all conversations”****。

询问有关特定拉取请求的问题

可以要求 Copilot 总结某个拉取请求,或说明拉取请求中特定文件或代码行中的更改。

获取拉取请求摘要

  1. 在 GitHub 上,导航到存储库中的拉取请求。

  2. 在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。

    此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。

  3. 如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。

  4. 在 Copilot Chat 面板底部的“询问 Copilot”框中,键入问题,然后按 Enter

    例如,可以询问:

    • 请为我总结此 PR。
    • 总结此 PR 中的注释。
    • 汇总此 PR 中的更改。
  5. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

询问对拉取请求中特定文件的更改

  1. 在 GitHub 上,导航到存储库中的拉取请求。

  2. 单击“已更改的文件”**** 选项卡。

  3. 单击文件右上角的 ,然后单击询问 Copilot 以了解此差异

  4. 在聊天面板底部的“询问 Copilot”框中键入问题,然后按 Enter 键。

    例如,可以询问:

    • 此文件的用途是什么?
    • 为什么包含此模块?
  5. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

询问有关拉取请求中文件内特定行的问题

  1. 在 GitHub 上,导航到存储库中的拉取请求。

  2. 单击“已更改的文件”**** 选项卡。

  3. 单击要选择的第一行的行号,按住 Shift 并单击要选择的最后一行的行号。

  4. 向 Copilot 提问,或从预定义问题列表中选择。

    • 要询问有关所选行的问题,请单击所选内容右侧的 Copilot 图标。 这将显示 GitHub Copilot Chat 面板,并将所选行作为问题的上下文。

      例如,可以询问:

      • 此行中的 actorData 是什么?
      • 说明此 do..end 块。
    • 要询问预定义的问题,请在所选内容右侧的 Copilot 图标旁,单击 ,然后单击解释

  5. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

询问工作流失败的原因

  1. 在 GitHub 上,导航到存储库中的拉取请求。

  2. 滚动到页面底部,然后在其中一个失败的检查旁边单击“详细信息”。

  3. 在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。

    此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。

  4. 如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。

  5. 在 Copilot Chat 面板底部的“询问 Copilot”框中,询问 Copilot 拉取请求失败的原因,然后按 Enter

    例如,可以询问:

    • 告诉我此作业失败的原因
    • 建议此错误的修复

Copilot 将响应有关拉取请求失败原因的信息。 Copilot 也可能提供如何解决此问题的建议。

  1. 如果 Copilot 提供了修复该问题的步骤,则可以按照这些步骤解决问题。
  2. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

可以让 Copilot 汇总或回答有关特定议题或讨论的问题。

Note

在处理具有很长正文或大量注释的议题或讨论时,Copilot Chat 回复的质量可能会下降。 例如,当你要求 Copilot 总结某个长期运行的讨论时,则可能会出现这种情况。 发生这种情况时,Copilot 将发出警告,以便你仔细查看其输出。

  1. 导航到 GitHub 上的问题或讨论。

  2. 在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。

    此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。

  3. 如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。

  4. 在 Copilot 聊天面板底部,在“询问 Copilot”框,键入问题,然后按 Enter。 例如,可以输入:

    • 解释此问题

    • 总结此讨论

    • 针对此问题建议后续步骤

    • 此问题的验收条件是什么?

    • PERSON 在此讨论中提出的的主要要点是什么?

    Tip

    可以在消息中包含相关 URL,而不是在浏览器中导航到议题或讨论以进行提问。 例如,Summarize https://github.com/monalisa/octokit/issues/1

    Copilot 将响应面板中的请求。

  5. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

询问有关特定提交内容的问题

可以要求 Copilot 解释提交内容中的更改。

  1. 导航到 GitHub 上的提交。

  2. 在 GitHub 上任何页面的右上角,单击搜索栏旁边的 GitHub Copilot 图标。

    此时将显示 GitHub Copilot Chat 面板。 要调整面板的大小,请单击并拖动顶部或左侧边缘。

  3. 如果面板包含与 Copilot 的上一个对话,请单击 Copilot 面板右上角的 加号图标以启动新对话。

  4. 在 Copilot 聊天面板底部,在“询问 Copilot”框,键入问题,然后按 Enter。 例如,可以输入:

    • 汇总此提交内容中的更改

    • 这些更改是谁提交的?

    • 此提交内容是什么时候发布的?

    Tip

    如果知道提交的 SHA,可以在消息中包含 SHA,以便从 GitHub 上的存储库中的任何页面向 Copilot 询问提交内容,而不是导航到提交内容。 例如: What changed in commit a778e0eab?

  5. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

从搜索栏中访问 Copilot Chat

在存储库的主搜索框中键入问题,可以询问 Copilot 有关整个存储库的问题。

  1. 导航到 GitHub 上的存储库。

  2. 按 / 或单击页面顶部的主搜索框。

  3. 在搜索框中,在 repo:OWNER/REPO 后键入想要询问 Copilot 的问题。

    例如,可以输入:

    • 此存储库的用途是什么?
    • 在何处实施此代码库中的身份验证?
    • 许可证文件检测在此存储库中如何工作?
  4. 单击“询问 Copilot”****。

    GitHub 上主搜索框的屏幕截图。 下拉列表选项“询问 Copilot”以橙色边框突出显示。

    将显示 GitHub Copilot Chat 面板,Copilot 将响应你的请求。

  5. (可选)单击文本框中的“”以阻止 Copilot 继续其响应。

扩展 Copilot Chat in GitHub

Note

GitHub Copilot Extensions 为 公共预览版,可能随时更改。

GitHub Copilot Extensions 将外部工具的强大功能集成到 Copilot Chat 中,帮助减少上下文切换并接收具有特定域上下文的响应。 可以从 GitHub Marketplace 安装 Copilot Extensions,或在组织中构建私有的 Copilot Extensions,然后在聊天窗口中键入 @ 即可查看可用扩展的列表。 若要使用扩展,请从列表中选择该扩展或键入完整的 slug 名称,然后键入提示。

若要了解详细信息,请参阅 使用扩展将外部工具与 Copilot Chat 集成

共享有关 GitHub Copilot Chat in GitHub 的反馈

Note

向 GitHub 提供有关 Copilot pull request summaries 的反馈的功能取决于企业设置。 有关详细信息,请参阅“管理企业中 Copilot 的策略和功能”。

要提供有关特定 Copilot Chat 响应的反馈,请单击每个聊天响应底部的大拇指向上或向下图标。

要就 Copilot Chat 总体而言提供反馈,单击聊天面板右上角的省略号 (...),然后单击“ 提供反馈”********。

其他阅读材料