Skip to main content

审查拉取请求中的建议更改

在拉取请求中,你可以审查和讨论提交、更改的文件以及基本和比较分支中文件之间的区别(或“差异”)。

Tool navigation

关于审查拉取请求

最好一次评审拉取请求中的一个文件:

  • 检查拉取请求中每个已更改的文件。
  • 对特定更改留下批注
  • 查看文件后,将其标记为 已查看 以折叠并跟踪进度。
  • 拉取请求标头中的 进度栏 显示已查看的文件数。
  • 完成后,你可以批准拉取请求或请求更改,通过提交包含总结评论的审核。

如果拉取请求是由 GitHub Copilot 提出的,那么在你提交批注时,Copilot 将进行更多工作来响应你的批注,并将新的提交推送到拉取请求中,以进行进一步更改。 请参阅“关于 GitHub Copilot 云代理”。

了解拉取请求的用途

清楚地了解拉取请求背后的动机有助于指导你的评审,使其能够更加针对性和有意义,并提供与拉取请求作者意图和项目目标相符的反馈。

有几种选项可供你更好地了解建议的更改的上下文和理由。

使用拉取请求边栏获取上下文

在拉取请求边栏中,可以找到有价值的上下文,包括:

  • 链接 问题讨论:查看这些内容以了解合并请求旨在解决的问题或目标,或收集有关背景、设计决策或当前争论的信息。
  • 关联的项目里程碑:查看此拉取请求如何融入大型项目或未来发布的版本。

使用此信息来制定评审框架,并检查拉取请求的目标是否与原始意向保持一致。

使用 副驾驶聊天 理解理论依据

可以请求 副驾驶聊天 帮助,了解拉取请求的意图,或澄清更改的任何部分。

  1. 在拉取请求页面的右上角,单击搜索栏旁边的 按钮。

           副驾驶聊天 出现时,拉取请求作为上下文附加到提示窗口。
    
  2. 在提示框中,键入问题,然后按 Enter。 例如,可以输入:

    • What problem does this pull request solve?

    • Why were these changes needed?

    • Summarize the goals of this PR based on the linked issue.

    • How does this PR relate to issue ISSUE-URL?

           副驾驶聊天 可以帮助你在进行行级评审之前澄清整体情况。
      

开始审查

  1. 在仓库名称下,单击 “Pull requests”****。

    存储库的主页的屏幕截图。 在水平导航栏中,标记为“拉取请求”的选项卡以深橙色标出。

  2. 在拉取请求列表中,单击要审查的拉取请求。

  3. 在拉取请求上,单击“ Files changed”****。

    拉取请求的选项卡的屏幕截图。 “已更改的文件”选项卡以深橙色突出显示。
    可以通过单击 并选择统一视图或拆分视图来更改此选项卡中差异视图的格式。 当你查看其他拉取请求的差异时,你所做的选择将适用。

    拉取请求的“已更改的文件”选项卡的屏幕截图。 “差异视图”菜单用深橙色框标出。

    您也可以选择隐藏空白差异。 您所做的选择仅适用于此拉取请求,并在您下次访问此页面时被记住。

  4. (可选)筛选文件以仅显示要查看的文件或使用文件树导航到特定文件。 有关详细信息,请参阅“过滤拉取请求中的文件”。

  5. 将鼠标悬停在要添加评论的代码行上方,然后单击蓝色的评论图标。

    拉取请求中差异的屏幕截图。 在行号旁边,蓝色加号图标以橙色边框突出显示。

  6. 或者,可以在多行中添加批注。 若要选择一系列行,请单击要批注的第一行的行号,然后向下拖动到最后一行,或按住 Shift 并单击最后一行号。 然后,可以单击要批注的最后一行上的蓝色批注图标。 或者,可以单击要对其添加注释的第一行旁边的蓝色批注图标,然后向下拖动到要对其添加批注的最后一行。

  7. 在评论字段中输入您的评论。

  8. (可选)要提供有关对一行或多行进行特定更改的建议,请单击“”,然后对建议块中的文本进行编辑。

    审核备注框屏幕截图。 用于建议特定更改的文件差异图标以深橙色轮廓显示。

  9. 若要直接对文件进行注释,请单击文件右侧的 ,然后键入注释。

    拉取请求的“文件已更改”页上的映像文件的屏幕截图。 在文件的右侧,以橙色框出了“注释”图标。

  10. 完成后,单击“开始审查”。 如果已开始审查,可以单击“添加审查注释”。

在你提交审查之前,你的行注释处于“待处理”状态,并且仅对你可见。 您可以在提交审查之前随时编辑待处理的注释。 若要取消挂起的审查(包括其所有挂起的注释),请单击已更改的代码上方的“审查更改”,然后单击“放弃审查”

          ![供审查的注释字段的屏幕截图。 “放弃审阅”按钮以深橙色边框显示。](/assets/images/help/pull_requests/abandon-review-button.png)

审查合并请求

可用于 GitHub Codespaces 测试、运行和查看拉取请求。

  1. 在代码空间中打开拉取请求,如 将 GitHub Codespaces 用于拉取请求 所述。

  2. 在活动栏中,单击 “拉取请求”GitHub 视图。 仅当在Codespace中创建一个拉取请求时,才会显示此视图。

    VS Code 活动栏的屏幕截图。 鼠标指针悬停在显示工具提示“GitHub 拉取请求”的图标上。

  3. 若要查看特定文件,请单击侧栏中的“打开文件”图标。

    “GitHub 拉取请求”边栏的屏幕截图。 文件名以深橙色边框突出显示。

  4. 要添加审核评论,请单击行号旁边的+图标。 键入审阅注释,然后单击“开始审阅”。

    正在添加的注释的屏幕截图,其中显示“是的,我同意,这样更清晰明了”。 “开始审阅”按钮显示在注释下方。

  5. 或者,可以建议更改,如果拉取请求的作者同意你的建议,则可以单击提交。 为此,请单击并按住要建议更改的第一行旁边的 + 符号,然后将该 + 符号拖动到要建议更改的最后一行。 然后单击显示的注释框中的“提出建议”。

    所选行将复制到注释框中,可在其中对其进行编辑以建议更改。 可以在包含 ```suggestion 的行上方添加注释来解释建议的更改。

    单击“添加注释”,将建议添加到拉取请求。

    建议更改的屏幕截图。 建议更改下方显示了“提出建议”和“添加注释”按钮。

  6. 添加完审阅注释后,你可以从侧栏中选择提交评论、批准更改或请求更改。

    边栏的屏幕截图,其中显示了下拉选项“添加注释并提交”、“批准并提交”和“请求更改并提交”。

有关查看 GitHub Codespaces 中的拉取请求的详细信息,请参阅 将 GitHub Codespaces 用于拉取请求

了解拉取请求中的更改

注意

你需要对 GitHub Copilot 的访问权限。 有关详细信息,请参阅“什么是GitHub Copilot?”。

          GitHub Copilot 可以通过提供特定提交的上下文和说明,帮助您快速了解拉取请求中的更改。 如果你不确定特定更改的目的,或者需要有关它如何适应更广泛的代码库的更多详细信息,可以询问 Copilot 有关单个提交的问题。
  1. 导航到GitHub上的提交。

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

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

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

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

    • Summarize the changes in this commit

    • Who committed these changes?

    • When was this commit made?

    提示

    如果您知道某个提交的 SHA 值,那么无需导航到提交,您可以在 Copilot 存储库的任何页面通过将 SHA 包含在消息中来向 GitHub 查询该提交的信息。 例如: What changed in commit a778e0eab?

  5. 或者,提交问题后,可以在文本框中单击 以停止响应。

查看依赖项更改

如果拉取请求包含对依赖项的更改,您可以使用清单或锁定文件的依赖项审阅来查看更改的内容,并检查更改是否引入安全漏洞。 有关详细信息,请参阅“审核拉取请求中的依赖项变更”。

  1. 在拉取请求上,单击“ Files changed”****。

    拉取请求的选项卡的屏幕截图。 “已更改的文件”选项卡以深橙色突出显示。

  2. 在清单或锁定文件的标头右侧,单击 详细差异按钮,以显示依赖项评审。

    拉取请求的“已更改的文件”选项卡的屏幕截图。 用于显示多差异的按钮(标有文件图标)以深橙色突出显示。

  3. 您可能还想查看源差异,因为清单或锁定文件可能会发生变化,但不会更改依赖项,也可能存在 GitHub 无法解析的依赖项,因此,这些依赖项不会显示在依赖项审核中。

    要返回到源差异视图,请单击“”按钮。****

    拉取请求的“已更改的文件”选项卡的屏幕截图。 以橙色框出了用于显示源差异的按钮(显示有代码图标)。

将文件标记为已查看

在完成审查文件后,你可以将文件标记为已查看,该文件将会收起。 如果查看过的文件有更改,将会取消已查看的标记。

  1. 在拉取请求上,单击“ Files changed”****。

    拉取请求的选项卡的屏幕截图。 “已更改的文件”选项卡以深橙色突出显示。

  2. 在已完成审查的文件的标头右侧,选择“已查看”。

    文件标头的屏幕截图。 “已审查”选项用深橙色框标出。

提交评论

在您查看完拉取请求中您想要查看的所有文件后,提交您的审查。

  1. 在拉取请求上,单击“ Files changed”****。

    拉取请求的选项卡的屏幕截图。 “已更改的文件”选项卡以深橙色突出显示。

  2. 在更改的代码上方,单击“审阅更改”。

    拉取请求的“已更改的文件”选项卡的屏幕截图。 “审查更改”按钮用深橙色框标出。

  3. 输入评论,概述您对拟议更改的反馈。

  4. 选择您想要留下的审查类型:

    • 选择“注释”以留下一般反馈,而无需明确批准或请求其他更改。
    • 选择批准以提交您的反馈并批准合并在拉取请求中提议的更改。
    • 选择“请求更改x”**** 以提交必须解决的反馈,然后才能合并拉取请求。
  5. 单击“提交审查”。

提示

  • 请求更改”选项纯粹是信息性的,除非规则集或经典分支保护规则配置了“要求拉取请求”选项,否则不会阻止合并。 如果配置了该选项,并且具有对存储库的 adminownerwrite 访问权限的协作者提交请求更改的审查,则在同一协作者提交另一次要求批准拉取请求中更改的审查之前,拉取请求不能合并。
  • 即使没有获得批准审查,或者请求更改的审查者离开了组织或者联系不上,仓库所有者和管理员也可合并拉取请求。
  • 如果同时启用了必需审查和过期审查,并且代码修改提交已推送到批准的拉取请求分支,则批准将予驳回。 拉取请求必须经过再次审查和批准才可合并。
  • 当多个打开的拉取请求时分别有指向同一提交的头部分支时,如果一个或两者有待定或被拒绝的审查,你将无法合并它们。
  • 如果仓库需要具有写入或管理员权限的人员的批准审查,审阅者边栏会按权限级别对审批进行分组。 审批可能显示在两个部分中: * ‌顶部部分主要包含来自具有写入或管理员权限的人员的审批,这些审批计入合并要求。 即使 GitHub Copilot 评审不计入合并要求,GitHub Copilot 的审批也会显示在本部分中。
    • 可折叠部分(如果存在)**** 显示审阅者的审批,对于是否可以合并拉取请求而言,这些审阅者的评审并无影响。
  • 拉取请求作者无法批准自己的拉取请求。如果你将 GitHub Copilot 分配给与拉取请求相关的议题,那么你也无法批准由 Copilot 提出的拉取请求。

其他阅读材料