跳至主要内容

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

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

关于审查拉取请求

最好一次只审查拉取请求中的一个文件

  • 检查 拉取请求中每个单独更改的文件。
  • 留下评论 对具体更改进行点评。
  • 审查完文件后,将其标记为 已查看 以折叠并跟踪您的进度。
  • 拉取请求标题中的 进度条 显示您已查看的文件数量。
  • 完成后,您可以通过提交带有摘要评论的审查来 批准 拉取请求或 请求更改

如果拉取请求是由 GitHub Copilot 发起的,那么在您提交评论时,Copilot 将进行更多工作以回应您的评论,并会向该拉取请求推送一个包含进一步更改的新提交。请参阅 关于 GitHub Copilot 云代理

了解拉取请求的目的

清晰了解拉取请求背后的动机有助于指导您的审查,使其更有针对性和意义,并提供与拉取请求作者意图以及项目目标相一致的反馈。

您有多种选择可帮助更好地理解提议更改的背景和理由。

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

在拉取请求侧栏中,您可以找到包括以下在内的有价值的上下文信息:

  • 链接的 议题讨论:审阅这些内容以了解拉取请求旨在解决的问题或目标,或获取例如背景、设计决策或当前争论等信息。
  • 链接的 项目里程碑:审查此拉取请求如何在更大的项目或即将发布的版本中定位。

使用这些信息来构建您的审查,并检查拉取请求的目标是否与最初的意图保持一致。

使用 Copilot Chat 了解理由

您可以向 Copilot Chat 请求帮助,以了解拉取请求的意图或对任何更改部分进行澄清。

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

    Copilot Chat 显示出来,拉取请求作为上下文附加在提示窗口中。

  2. 在提示框中输入问题并按 Enter。例如,您可以输入

    • 此拉取请求解决了什么问题?
    • 为什么需要这些更改?
    • 根据链接的议题概括此 PR 的目标。
    • 此 PR 与议题 ISSUE-URL 有何关联?

Copilot Chat 可帮助您在深入行级审查之前,先理清更大的背景。

开始审查

  1. 在仓库名称下,点击 拉取请求

    Screenshot of the main page of a repository. In the horizontal navigation bar, a tab, labeled "Pull requests," is outlined in dark orange.

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

  3. 在拉取请求页面,点击 已更改的文件

    Screenshot of the tabs for a pull request. The "Files changed" tab is outlined in dark orange.
    您可以通过点击来更改此标签页中 diff 视图的格式并选择统一视图或分割视图。您所做的选择将在您查看其他拉取请求的 diff 时生效。

    Screenshot of the "Files changed" tab for a pull request. The "Diff view" menu is outlined in dark orange.

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

  4. 您可以选择过滤文件,只显示想要审查的文件,或使用文件树导航到特定文件。更多信息请参阅 在拉取请求中筛选文件

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

    Screenshot of a diff in a pull request. Next to a line number, a blue plus icon is highlighted with an orange outline.

  6. 可选地,您可以对多行进行评论。要选择一段行范围,请单击第一行的行号,然后向下拖动至最后一行,或按住Shift并单击最后一行的行号。随后,单击您想要评论的最后一行的蓝色评论图标。或者,您也可以先单击第一行旁的蓝色评论图标,再向下拖动至最后一行。

  7. 在评论框中输入您的评论。

  8. 可选地,要对该行或多行提出具体更改建议,请单击,然后在建议块中编辑文本。

    Screenshot of a review comment box. The file diff icon to suggest a specific change is outlined in dark orange.

  9. 要直接对文件进行评论,请在文件右侧单击并输入您的评论。

    Screenshot of an image file on the "Files changed" page of a pull request. To the right of the file, a comment icon is outlined in orange.

  10. 完成后,点击 开始审查。如果您已经开始了审查,可以点击 添加审查评论

在提交审查之前,您的行评论为 待处理,仅您可见。您可以在提交审查前随时编辑待处理评论。若要取消待处理审查(包括所有待处理评论),请点击更改代码上方的 审查更改,然后点击 放弃审查

Screenshot of the comment field for a review. The "Abandon review" button is outlined in dark orange.

审查拉取请求

您可以使用 GitHub Codespaces 对拉取请求进行测试、运行和审查。

  1. 按照 使用 GitHub Codespaces 进行拉取请求 中的描述,在代码空间中打开此拉取请求。

  2. 在活动栏中,点击 GitHub Pull Request 视图。该视图仅在您在代码空间中打开拉取请求时出现。

    Screenshot of the VS Code Activity Bar. The mouse pointer is hovering over an icon displaying the tooltip "GitHub Pull Request."

  3. 要审查特定文件,请点击侧栏中的 打开文件 图标。

    Screenshot of the "GitHub Pull Request" side bar. A file name is highlighted with a dark orange outline.

  4. 要添加审查评论,点击行号旁的 + 图标。输入审查评论后,点击 开始审查

    Screenshot of a comment being added, reading "Yes, I agree, this is clearer." The "Start Review" button is shown below the comment.

  5. 可选地,您可以建议作者在同意后点击提交的更改。要执行此操作,按住您想建议更改的第一行旁的 + 符号,然后将 + 符号拖动到想建议更改的最后一行。随后在显示的评论框中单击 Make a Suggestion

    您选择的行会复制到评论框中,您可以在其中编辑以提出更改建议。您可以在包含 ```suggestion 的行上方添加评论,以解释您的建议更改。

    单击 Add Comment 将您的建议添加到拉取请求中。

    Screenshot of a suggested change. The "Make a Suggestion" and "Add Comment" buttons are shown below the suggested change.

  6. 完成添加审查评论后,您可以在侧栏中选择提交评论、批准更改或请求更改。

    Screenshot of the side bar showing the dropdown options "Comment and Submit," "Approve and Submit," and "Request Changes and Submit."

有关在 GitHub Codespaces 中审查拉取请求的更多信息,请参阅 使用 GitHub Codespaces 进行拉取请求

了解拉取请求中的更改

注意

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

GitHub Copilot 可帮助您快速了解拉取请求中的更改,通过为特定提交提供上下文和解释。如果您不确定某个更改的目的或需要了解它如何适应更广泛的代码库,可向 Copilot 询问关于单个提交的问题。

  1. 在 GitHub 上导航至某个提交。

  2. 在 GitHub 任意页面的右上角,点击搜索栏旁的 图标。

    GitHub Copilot Chat 面板已显示。要调整面板大小,请点击并拖动顶部或左侧边缘。

  3. 如果面板中包含您与 Copilot 之前的对话,请点击位于 Copilot 面板右上角的加号图标,以开始新对话。

  4. 在 Copilot 聊天面板底部的 “Ask Copilot” 框中,输入问题并按 Enter。例如,您可以输入

    • 概括此提交的更改

    • 是谁提交了这些更改?

    • 此提交何时完成?

    提示

    如果您知道提交的 SHA,而不是导航到该提交,您可以在 GitHub 仓库的任何页面通过在消息中包含 SHA 来询问 Copilot 有关该提交的情况。例如,提交 a778e0eab 有哪些更改?

  5. 可选地,在提交问题后,你可以点击文本框中的按钮来停止响应。

审查依赖项更改

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

  1. 在拉取请求页面,点击 已更改的文件

    Screenshot of the tabs for a pull request. The "Files changed" tab is outlined in dark orange.

  2. 在清单或锁定文件的标题右侧,点击 “丰富差异”按钮,即可显示依赖项审查。

    Screenshot of the "Files changed" tab of a pull request. The button to display the rich diff, labeled with a file icon, is outlined in dark orange.

  3. 您也可能想查看源码 diff,因为清单或 lock 文件中可能存在未更改依赖的修改,或者可能存在 GitHub 无法解析的依赖,这些依赖因此不会出现在依赖审查中。

    要返回源码 diff 视图,请点击 按钮。

    Screenshot of the "Files changed" tab of a pull request. The button to display the source diff, shown with a code icon, is outlined in orange.

将文件标记为已查看

在完成对文件的审查后,您可以将该文件标记为已查看,文件将折叠。如果文件在您查看后再次更改,它将不再标记为已查看。

  1. 在拉取请求页面,点击 已更改的文件

    Screenshot of the tabs for a pull request. The "Files changed" tab is outlined in dark orange.

  2. 在您已审查完的文件标题右侧,选择 已查看

    Screenshot of the header of a file. The "Viewed" option is outlined in dark orange.

提交您的审查

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

  1. 在拉取请求页面,点击 已更改的文件

    Screenshot of the tabs for a pull request. The "Files changed" tab is outlined in dark orange.

  2. 在更改的代码上方,点击审查更改

    Screenshot of the "Files changed" tab of a pull request. The "Review changes" button is outlined in dark orange.

  3. 输入一条评论,对提议的更改进行摘要反馈。

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

    • 选择 评论 以留下一般反馈,而不明确批准更改或请求额外更改。
    • 选择 批准 以提交反馈并批准合并拉取请求中提议的更改。
    • 选择 请求更改 以提交必须在拉取请求合并前处理的反馈。
  5. 点击提交审查

提示

  • 请求更改选项仅用于信息提示,除非在规则集或经典分支保护规则中配置了“需要拉取请求”选项,否则它不会阻止合并。如果已配置此项,并且拥有adminownerwrite访问权限的协作者提交了请求更改的审查,则在同一协作者提交另一个批准该拉取请求更改的审查之前,拉取请求无法合并。
  • 即使拉取请求未获得批准审查,或者请求更改的审查者已离开组织或不可用,仓库所有者和管理员仍可以合并该拉取请求。
  • 如果同时启用了必需审查和过期审查撤销,并且对已批准的拉取请求的分支推送了修改代码的提交,则该批准会被撤销。拉取请求必须再次审查并获得批准后才能合并。
  • 当多个打开的拉取请求的头分支指向同一提交时,如果其中一个或多个拥有待处理或已拒绝的审查,您将无法合并这些拉取请求。
  • 如果您的仓库要求拥有写入或管理员权限的人员进行批准审查,审查者侧边栏会按权限级别对批准进行分组。批准可能出现在两个部分:
    • 顶部部分主要包含来自拥有写入或管理员权限的人员的批准,这些批准计入合并要求。GitHub Copilot 的批准也会出现在此部分,尽管 Copilot 的审查不计入这些要求。
    • 可折叠部分(如果存在)显示来自审查者的批准,但这些审查不会影响拉取请求是否可以合并。
  • 拉取请求作者不能批准自己的拉取请求。如果拉取请求是由 GitHub Copilot 发起的,且是您将 Copilot 指派到相关议题,则您同样无法批准该拉取请求。

延伸阅读

© . This site is unofficial and not affiliated with GitHub, Inc.