

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Amazon 中使用拉取请求查看代码 CodeCatalyst
<a name="source-pull-requests"></a>

拉取请求是您和其他项目成员用于审查、注释和合并分支间的代码更改的主要方式。您可以使用拉取请求来协同审查代码更改，包括次要的更改或修复、主要功能添加或已发布软件的新版本。如果您使用事务来跟踪项目工作，您可以将特定事务与拉取请求相关联，以便于您跟踪拉取请求中的代码更改处理了哪些事务。当您创建、更新、评论、合并或关闭拉取请求时，系统会自动向拉取请求的作者以及该拉取请求的任何必需或可选的审阅者发送一封电子邮件。

**提示**  
您可以在个人资料中配置您将收到哪些拉取请求事件的相关电子邮件。有关更多信息，请参阅 [从 CodeCatalyst 发送 Slack 和电子邮件通知](notifications-manage.md)。

拉取请求需要在源存储库中建立两个分支：一个是源分支，其中包含您希望审查的代码；另一个是目标分支，您希望在其中合并已审查的代码。源分支包含 AFTER 提交，该提交包含要合并到目标分支中的更改。目标分支包含 BEFORE 提交，表示代码在拉取请求分支合并到目标分支中之前的状态。

**注意**  
在创建拉取请求时，显示的差异是源分支最新块与目标分支最新块之间的差异。创建拉取请求后，显示的差异将是您选择的拉取请求修订版与创建拉取请求时目标分支最新块的提交之间的差异。有关 Git 中的差异和合并基础的更多信息，请参阅 Git 文档[git-merge-base](https://git-scm.com/docs/git-merge-base)中的。

虽然拉取请求是为特定源存储库和分支创建的，但作为项目工作的一部分，您可以创建、查看、审查和关闭拉取请求。您不必查看源存储库就能查看和处理拉取请求。创建拉取请求时，拉取请求状态会设置为 **Open**。拉取请求将一直处于打开状态，直到您在 CodeCatalyst 控制台中将其合并（将状态更改为 “**已合并**”）或将其关闭（将其状态更改为 “**已关闭**”）。

代码通过审查后，您可以通过以下几种方式之一更改拉取请求状态：
+ 在 CodeCatalyst 控制台中合并拉取请求。拉取请求源分支中的代码将被合并到目标分支中。拉取请求状态将变为**已合并**。无法改回 **Open** 状态。
+ 在本地合并分支并推送您的更改，然后在 CodeCatalyst 控制台中关闭拉取请求。
+ 使用 CodeCatalyst 控制台关闭拉取请求而不进行合并。这会将状态更改为**已关闭**，但不会将代码从源分支合并到目标分支。

在创建拉取请求之前，请：
+ 将要审查的代码更改提交和推送至一个分支（源分支）。
+ 为您的项目设置通知，这样其他用户就能收到您创建拉取请求时运行的任何工作流的相关通知。（此步骤为可选步骤，但建议使用。）

**Topics**
+ [创建拉取请求](pull-requests-create.md)
+ [查看拉取请求](pull-requests-view.md)
+ [管理将拉取请求与审批规则合并的要求](source-pull-requests-approval-rules.md)
+ [审核拉取请求](pull-requests-review.md)
+ [更新拉取请求](pull-requests-update.md)
+ [合并拉取请求](pull-requests-merge.md)
+ [关闭拉取请求](pull-requests-close.md)

# 创建拉取请求
<a name="pull-requests-create"></a>

创建拉取请求有助于在您将代码更改合并到另一分支之前，让其他用户查看和审核您所做的更改。首先，您需要为代码更改创建一个分支，这称作拉取请求的源分支。提交更改并将其推送到存储库后，您可以创建一个拉取请求来将源分支的内容与目标分支的内容进行比较。

您可以在 Amazon CodeCatalyst 控制台中从特定分支、拉取请求页面或项目概述创建拉取请求。从特定分支创建拉取请求会自动在拉取请求创建页面上提供存储库名称和源分支。创建一个拉取请求时，您将自动收到有关该拉取请求的任何更新以及拉取请求的合并或关闭时间的电子邮件。

**注意**  
在创建拉取请求时，显示的差异是源分支最新块与目标分支最新块之间的差异。创建拉取请求后，显示的差异将是您选择的拉取请求修订版与创建拉取请求时目标分支最新块的提交之间的差异。有关 Git 中的差异和合并基础的更多信息，请参阅 Git 文档[git-merge-base](https://git-scm.com/docs/git-merge-base)中的。

在创建拉取请求时，您可以使用**为我编写描述**功能，让 Amazon Q 自动为拉取请求中包含的更改创建描述。当您选择此选项时，Amazon Q 会分析包含代码更改的源分支与要合并这些更改的目标分支之间的差异。然后，它会总结了这些更改的内容，以及对这些更改的意图和效果的优秀解释。此功能仅在美国西部（俄勒冈）地区适用于 CodeCatalyst 拉取请求。**为我编写描述**功能不适用于已链接存储库中的拉取请求。

**注意**  
**由 Amazon Bedrock** 提供支持： AWS 实现[自动滥用检测](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html)。由于**为我编写描述**、**创建内容摘要**、**推荐任务**、**使用 Amazon Q 创建功能或将功添加到项目**以及**将事务分配给 Amazon Q** 功能与用于软件开发的 Amazon Q 开发者版代理程序的功能都是基于 Amazon Bedrock 构建的，因此，用户可以充分利用 Amazon Bedrock 中实施的控制措施来强制实施安全性并负责任地使用人工智能（AI）。

**创建拉取请求**

1. 导航到您的项目。

1. 请执行以下操作之一：
   + 在导航窗格中，依次选择**代码**、**拉取请求**和**创建拉取请求**。
   + 在存储库主页上，选择**更多**，然后选择**创建拉取请求**。
   + 在项目页面上，选择**创建拉取请求**。

1. 在**源代码库**中，确保指定的源存储库是包含所提交代码的存储库。只有在您未从存储库的主页创建拉取请求时，才会显示此选项。

1. 在**目标分支**中，在审查代码后，选择要将代码合并到的分支。

1. 在**源分支**中，选择包含所提交代码的分支。

1. 在**拉取请求标题**中，输入一个标题，帮助其他用户了解需要审查的内容及其原因。

1. （可选）在**拉取请求描述**中，提供诸如事务链接或所做更改的描述之类的信息。
**提示**  
你可以选择 “**为我写描述**”， CodeCatalyst 自动生成拉取请求中包含的更改的描述。您可以在将自动生成的描述添加到拉取请求后，对描述进行更改。  
此功能要求为空间启用生成式人工智能功能，并且不适用于链接的存储库中的拉取请求。有关更多信息，请参阅 [Managing generative AI features](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)。

1. （可选）在**事务**中，选择**关联事务**，然后从列表中选择事务或输入事务 ID。要取消链接事务，请选择“取消链接”图标。

1. （可选）在**必需的审阅者**中，选择**添加必需审阅者**。从项目成员列表中进行选择，添加审阅者。必需的审阅者必须批准更改，才能将拉取请求合并到目标分支。
**注意**  
您不能将审阅者同时添加为必需的审阅者和可选的审阅者。您不能将自己添加为审阅者。

1. （可选）在**可选的审阅者**中，选择**添加可选审阅者**。从项目成员列表中进行选择，添加审阅者。可选的审阅者不必批准更改，这并不是将拉取请求合并到目标分支之前的必备要求。

1. 审查分支之间的差异。拉取请求中显示的差异是源分支中的修订与合并基准之间的更改，而合并基准是创建拉取请求时目标分支的 HEAD 提交。如果未显示任何更改，则分支可能相同，或者您可能为源和目标选择了相同的分支。

1. 如果您对拉取请求中包含的希望审查的代码和更改感到满意，请选择**创建**。
**注意**  
创建拉取请求后，可以添加备注。可以将备注添加到拉取请求中或文件内的单独行中，也可以为整个拉取请求添加备注。您可以使用 @ 符号后跟文件名的方式，添加指向文件等资源的链接。<a name="pull-requests-create-from-branch"></a>

**从分支创建拉取请求**

1. 导航到要在其中创建拉取请求的项目。

1. 在导航窗格中，选择**源存储库**，然后选择包含要审阅其代码更改的分支的存储库。

1. 选择默认分支名称旁边的下拉箭头，然后从列表中选择所需分支。要查看存储库的所有分支，请选择**查看全部**。

1. 选择**更多**，然后选择**创建拉取请求**。

1. 系统将为您预先选择存储库和源分支。在**目标分支**中，选择在审阅代码后要将代码合并到的分支。在**拉取请求标题**中，输入一个标题来帮助其他用户了解必须审阅的内容及其审阅原因。（可选）在**拉取请求描述**中提供更多信息，例如粘贴中相关问题的链接 CodeCatalyst，或者添加对您所做更改的描述。
**注意**  
如果拉取请求的目标分支与工作流中指定的某个分支匹配，则配置为针对拉取请求创建事件运行的工作流将在拉取请求创建后运行。

1. 审查分支之间的差异。如果未显示任何更改，则分支可能相同，或者您可能为源和目标选择了相同的分支。

1. （可选）在**事务**中，选择**关联事务**，然后从列表中选择事务或输入事务 ID。要取消链接事务，请选择“取消链接”图标。

1. （可选）在**必需的审阅者**中，选择**添加必需审阅者**。从项目成员列表中进行选择，添加审阅者。必需的审阅者必须批准更改，才能将拉取请求合并到目标分支。
**注意**  
您不能将审阅者同时添加为必需的审阅者和可选的审阅者。您不能将自己添加为审阅者。

1. （可选）在**可选的审阅者**中，选择**添加可选审阅者**。从项目成员列表中进行选择，添加审阅者。可选的审阅者不必批准更改，即可将拉取请求合并到目标分支中。

1. 如果您对拉取请求包含要审阅的更改以及所需的审阅者感到满意后，请选择**创建**。

如果您将任何工作流配置为在分支与拉取请求中的目标分支匹配时运行，则创建拉取请求后，您将在**拉取请求详细信息**区域的**概述**中看到有关这些工作流运行的信息。有关更多信息，请参阅[添加触发器到工作流](workflows-add-trigger-add.md)。

# 查看拉取请求
<a name="pull-requests-view"></a>

您可以在 Amazon CodeCatalyst 控制台中查看项目的拉取请求。项目摘要页面将显示项目的所有待处理的拉取请求。要查看所有拉取请求（无论状态如何），请导航到项目的拉取请求页面。在查看拉取请求时，您可以选择汇总针对为您创建的拉取请求的更改留下的所有评论。

**注意**  
**由 Amazon Bedrock** 提供支持： AWS 实现[自动滥用检测](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html)。由于**为我编写描述**、**创建内容摘要**、**推荐任务**、**使用 Amazon Q 创建功能或将功添加到项目**以及**将事务分配给 Amazon Q** 功能与用于软件开发的 Amazon Q 开发者版代理程序的功能都是基于 Amazon Bedrock 构建的，因此，用户可以充分利用 Amazon Bedrock 中实施的控制措施来强制实施安全性并负责任地使用人工智能（AI）。<a name="pull-requests-view-open-project"></a>

**查看待处理的拉取请求**

1. 导航到要在其中查看拉取请求的项目。

1. 在项目页面上，将显示待处理的拉取请求，包括有关拉取请求的创建者、包含拉取请求分支的存储库以及拉取请求的创建日期的信息。您可以按源存储库筛选待处理的拉取请求视图。

1. 要查看所有拉取请求，请选择**查看全部**。您可以使用选择器在各个选项之间进行选择。例如，要查看所有拉取请求，请选择**任何状态**和**任何作者**。

   或者，在导航窗格中，选择**代码**，再选择**拉取请求**，然后使用选择器来优化视图。

1. 在**拉取请求**页面上，您可以按 ID、标题、状态等对拉取请求进行排序。要自定义拉取请求页面上显示的信息的内容和数量，请选择齿轮图标。

1. 要查看特定的拉取请求，请从列表中选择该拉取请求。

1. 要查看与该拉取请求关联的工作流运行的状态（如果有），请选择**概述**，然后在**工作流运行**下查看拉取请求的**拉取请求详细信息**区域中的信息。

   如果为工作流配置了拉取请求创建或修订事件，并且工作流中的目标分支要求与拉取请求中指定的目标分支相匹配，则会运行工作流。有关更多信息，请参阅 [添加触发器到工作流](workflows-add-trigger-add.md)。

1. 要查看链接的事务（如果有），请选择**概述**，然后查看**事务**下的**拉取请求详细信息**中的信息。如果您想查看链接的事务，请从列表中选择其 ID。

1. （可选）要创建针对拉取请求修订中的代码更改留下的评论的摘要，请选择**创建内容摘要**。摘要将不包括针对整个拉取请求留下的任何评论。
**注意**  
此功能要求为空间启用生成式人工智能功能，它不适用于链接的存储库并且仅在美国西部（俄勒冈州）区域提供。有关更多信息，请参阅 [Managing generative AI features](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)。

1. 要查看拉取请求中的代码更改，请选择**更改**。您可以在**文件已更改**中快速查看拉取请求中发生更改的文件数，以及拉取请求中具有评论的文件。文件夹旁边显示的评论数表示该文件夹中文件的评论数。展开文件夹可查看文件夹中每个文件的评论数。您还可以查看为特定代码行留下的任何评论。

   
**注意**  
并非拉取请求中的所有更改都可以在控制台中显示。例如，您无法在控制台中查看 Git 子模块，因此无法在拉取请求中查看子模块中的差异。有些差异可能太大而无法显示。有关更多信息，请参阅[中的源存储库配额 CodeCatalyst](source-quotas.md)和[查看文件查看文件更改历史记录](source-files-view.md)。

1. 要查看此拉取请求的质量报告，请选择**报告**。
**注意**  
必须配置工作流来生成报告，以使报告显示在拉取请求中。有关更多信息，请参阅 [使用工作流进行测试使用工作流进行测试](test-workflow-actions.md)。

# 管理将拉取请求与审批规则合并的要求
<a name="source-pull-requests-approval-rules"></a>

创建拉取请求时，您可以选择将必需或可选的审阅者添加到该单个拉取请求中。但是，您也可以创建所有拉取请求在合并到特定的目标分支时必须满足的要求。这些要求称为审批规则。审批规则是为存储库中的分支配置的。当您创建目标分支已配置审批规则的拉取请求时，除了获得任何必需的审阅者的批准外，还必须满足该规则的要求，然后才能将拉取请求合并到该分支。创建审批规则有助于您保持合并到分支（如默认分支）的质量标准。

应用于源存储库默认分支的审批规则与应用于其他分支的审批规则在行为上有些不同。应用于默认分支的任何规则，都将自动应用于您指定为默认分支的任何分支。以前设置为默认分支的分支仍将保留应用于它的规则。

创建审批规则时，您应该考虑项目用户在现在和将来如何满足该规则。例如，如果您的项目中有六个用户，而您创建的审批规则要求在合并到目标分支前需要五次审批，那么您实际上创建了一条规则，要求除创建拉取请求的人员以外的所有人在合并拉取请求前批准该请求。

**注意**  
您必须具有项目管理员角色才能在 CodeCatalyst 项目中创建和管理批准规则。无法为链接的存储库创建审批规则。

 您不能删除审批规则，但可以将其更新为要求零审批，这样就有效地删除了规则。<a name="view-edit-approval-rules"></a>

**查看和编辑拉取请求目标分支的审批规则**

1. 导航到存储库所在的项目。

1. 从项目的源存储库列表中选择存储库的名称。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。

   选择要在其中查看审批规则的存储库。

1. 在存储库的概述页面上，选择**分支**。

1. 在**审批规则**栏中，选择**查看**可查看存储库每个分支的任何规则的状态。

   在**最小批准数**中，该数字与拉取请求合并到该分支前所需的批准数相对应。

1. 要创建或更改审批规则，请选择**管理设置**。在源存储库的设置页面上，在**审批规则**中，选择**编辑**。
**注意**  
您必须具有**项目管理员**角色才能编辑审批规则。

1. 在**分支**中，从下拉列表中选择要为其配置审批规则的分支名称。在**最小批准数**中，输入一个数字，然后选择**保存**。

# 审核拉取请求
<a name="pull-requests-review"></a>

您可以使用 Amazon CodeCatalyst 控制台协作查看并评论拉取请求中包含的更改。您可以向单个代码行中添加评论，说明源分支和目标分支之间的差异以及各个拉取请求修订之间的差异。您可以选择创建在拉取请求中更改代码时留下的评论的摘要，以帮助您快速了解其他用户留下的反馈。您还可以选择创建一个开发环境来处理代码。

**注意**  
**由 Amazon Bedrock** 提供支持： AWS 实现[自动滥用检测](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html)。由于**为我编写描述**、**创建内容摘要**、**推荐任务**、**使用 Amazon Q 创建功能或将功添加到项目**以及**将事务分配给 Amazon Q** 功能与用于软件开发的 Amazon Q 开发者版代理程序的功能都是基于 Amazon Bedrock 构建的，因此，用户可以充分利用 Amazon Bedrock 中实施的控制措施来强制实施安全性并负责任地使用人工智能（AI）。

**提示**  
您可以在个人资料中配置您将收到哪些拉取请求事件的相关电子邮件。有关更多信息，请参阅 [从 CodeCatalyst 发送 Slack 和电子邮件通知](notifications-manage.md)。<a name="merge-base"></a>

拉取请求显示了拉取请求修订与创建拉取请求时作为目标分支最新块的提交之间的差异。这称作合并基础。有关 Git 中的差异和合并基础的更多信息，请参阅 Git 文档[git-merge-base](https://git-scm.com/docs/git-merge-base)中的。

**提示**  
在控制台中工作时，特别是在您已打开拉取请求一段时间的情况下，请考虑刷新浏览器以确保在开始审核拉取请求之前，有最新的修订可供拉取请求使用。

**在 CodeCatalyst 控制台中查看拉取请求**

1. 导航到您的项目。

1. 通过执行下列操作之一来导航到拉取请求：
   + 如果项目页面上列出了拉取请求，请从列表中选择它。
   + 如果项目页面上未列出拉取请求，请选择**查看全部**。使用筛选条件和排序来查找拉取请求，然后从列表中选择它。
   + 在导航窗格中，选择**代码**，然后选择**拉取请求**。

1. 从列表中选择要审核的拉取请求。您可以通过在筛选条件栏中键入拉取请求的部分名称来筛选拉取请求列表。

1. 在**概述**中，您可以审核拉取请求的名称和标题。您可以创建和查看拉取请求本身留下的评论。您还可以查看拉取请求的详细信息，包括有关工作流运行、链接的事务、审阅者、拉取请求作者和可行的合并策略的信息。
**注意**  
特定代码行上留下的评论会显示在**更改**中。

1. （可选）要添加适用于整个拉取请求的评论，请展开**针对拉取请求的评论**，然后选择**创建评论**。

1. （可选）要查看对此拉取请求修订中的更改留下的所有评论的摘要，请选择**创建评论摘要**。
**注意**  
此功能要求为空间启用生成式人工智能功能，并且仅在美国西部（俄勒冈州）区域提供。有关更多信息，请参阅 [Managing generative AI features](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)。

1. 在**更改**中，您可以查看目标分支与拉取请求的最新修订之间的差异。如果有多个修订，您可以在它们之间的差异中更改要比较的修订。有关修订的更多信息，请参阅[修订](source-concepts.md#revision-concept)。
**提示**  
您可以在**文件已更改**中快速查看拉取请求中发生更改的文件数，以及拉取请求中具有评论的文件。文件夹旁边显示的评论数表示该文件夹中文件的评论数。展开文件夹可查看文件夹中每个文件的评论数。

1. 要更改差异的显示方式，请在**统一**和**拆分**之间进行选择。

1. 要向拉取请求中的行添加评论，请转到要评论的行。选择为该行显示的评论图标，输入评论，然后选择**保存**。

1. 要查看拉取请求中的各个修订之间的更改或其源分支和目标分支之间的更改，请从**比较**中的可用选项中进行选择。修订中各行的评论将保留在这些修订中。

1. 如果您已将工作流配置为生成有关拉取请求触发器的代码覆盖率报告，则可以在相关的拉取请求中查看行和分支覆盖率结果。要隐藏代码覆盖率结果，请选择**隐藏代码覆盖率**。有关更多信息，请参阅 [代码覆盖率报告](test-workflow-actions.md#test-code-coverage-reports)。

1. 如果要对拉取请求进行代码更改，则可以从拉取请求创建开发环境。选择**创建开发环境**。可选择为开发环境添加名称或编辑其配置，然后选择**创建**。

1. 在**报告**中，您可以查看此拉取请求中的质量报告。如果有多个修订，您可以在它们之间的差异中更改要比较的修订。您可以按名称、状态、工作流、操作和类型筛选报告。
**注意**  
必须配置工作流来生成报告，以使报告显示在拉取请求中。有关更多信息，请参阅 [在操作中配置质量报告](test-config-action.md)。

1. 要查看特定报告，请从列表中选择该报告。有关更多信息，请参阅 [使用工作流进行测试使用工作流进行测试](test-workflow-actions.md)。

1. 如果您被列为拉取请求的审阅者并想批准更改，请确保您正在查看最新修订，然后选择**批准**。
**注意**  
所有必需的审阅者都必须批准拉取请求，之后才能合并拉取请求。

# 更新拉取请求
<a name="pull-requests-update"></a>

通过更新拉取请求，可让其他项目成员更轻松地审核代码。您可以更新拉取请求以更改其审阅者、事务链接、拉取请求的标题或描述。例如，您可能需要更改拉取请求的必需的审阅者，以移除正在度假的人员并添加其他人员。您还可以将提交推送到处于打开状态的拉取请求的源分支，从而通过进一步的代码更改来更新拉取请求。每次推送到源存储库中拉取请求的 CodeCatalyst 源分支都会创建一个修订版。项目成员可以查看拉取请求中的各个修订之间的差异。<a name="pull-requests-update-reviewers"></a>

**更新拉取请求的审阅者**

1. 导航到要在其中更新拉取请求审阅者的项目。

1. 在项目页面上的**打开拉取请求**下，选择要更新其审阅者的拉取请求。或者，在导航窗格中，选择**代码**，再选择**拉取请求**，然后选择要更新的拉取请求。

1. （可选）在**概述**中的**拉取请求详细信息**区域中，选择加号以添加必需或可选的审阅者。选择审阅者旁边的 **X** 可将其作为可选或必需的审阅者移除。

   

1. （可选）在**概述**中的**拉取请求详细信息**区域中，选择**链接的事务**以将事务链接到拉取请求，然后从列表中选择事务或输入事务 ID。要取消链接某个事务，请选择要取消链接的事务旁边的取消链接图标。<a name="pull-requests-update-code"></a>

**更新拉取请求的源分支中的文件和代码**

1. 要更新多个文件，您可以[创建开发环境](devenvironment-create.md)，也可以克隆存储库及其源分支，然后使用 Git 客户端或集成式开发环境（IDE）对源分支中的文件进行更改。提交更改并将其推送到源存储库中的 CodeCatalyst 源分支，以使用更改自动更新拉取请求。有关更多信息，请参阅[克隆源存储库](source-repositories-clone.md)和[通过在 Amazon 中提交来了解源代码的变化 CodeCatalyst](source-commits.md)。

1. 可以使用 Git 客户端或 IDE 更新源分支中的单个文件，就像更新多个文件一样。您也可以直接在 CodeCatalyst控制台中对其进行编辑。有关更多信息，请参阅 [编辑文件](source-files-edit.md)。<a name="pull-requests-update-pull-request"></a>

**更新拉取请求的标题和描述**

1. 导航到要在其中更新拉取请求的标题或描述的项目。

1. 项目页面将显示待处理的拉取请求，包括有关拉取请求的创建者、包含拉取请求分支的存储库以及拉取请求的创建时间的信息。您可以按源存储库筛选待处理的拉取请求视图。从列表中选择要更改的拉取请求。

1. 要查看所有拉取请求，请选择**查看全部**。或者，在导航窗格中，选择**代码**，然后选择**拉取请求**。使用筛选框或排序功能查找要更改的拉取请求，然后将其选定。

1.  在**概述**部分中，选择**编辑**。

1. 更改标题或描述，然后选择**保存**。

# 合并拉取请求
<a name="pull-requests-merge"></a>

在您的代码经过审核并且所有必需的审阅者都已批准之后，您可以使用支持的合并策略（例如快进）在 CodeCatalyst 控制台中合并拉取请求。并非 CodeCatalyst 控制台支持的所有合并策略都可用作所有拉取请求的选项。 CodeCatalyst 评估合并，并且仅允许您在控制台中可用且能够将源分支合并到目标分支的合并策略之间进行选择。您还可以使用所选的 Git 合并策略来合并拉取请求，方法是在本地计算机或开发环境中运行 **git merge** 命令来将源分支合并到目标分支中。然后，您可以将目标分支中的这些更改推送到中的源存储库 CodeCatalyst。

**注意**  
合并分支并在 Git 中推送更改不会自动关闭拉取请求。

如果您具有项目管理员角色，则还可以选择合并尚未满足所有审批要求和审批规则的拉取请求。

## 合并拉取请求（控制台）
<a name="pull-requests-merge-console"></a>

如果源分支和目标分支之间没有合并冲突，并且所有必需的审阅者都批准了拉取请求，则可以在 CodeCatalyst 控制台中合并拉取请求。如果发送冲突或者无法完成合并，则合并按钮将处于非活跃状态，并显示**不可合并**标签。在这种情况下，您必须获得所有必需的批准者的审批，本地解决冲突（如有必要）并推送这些更改，之后才能进行合并。合并拉取请求会自动向拉取请求的创建者以及任何所需或可选的审阅者发送一封电子邮件。这不会自动关闭或更改与拉取请求链接的任何事务的状态。

**提示**  
您可以在个人资料中配置您将收到哪些拉取请求事件的相关电子邮件。有关更多信息，请参阅 [从 CodeCatalyst 发送 Slack 和电子邮件通知](notifications-manage.md)。<a name="pull-requests-merge-console"></a>

**合并拉取请求**

1. 导航到要在其中合并拉取请求的项目。

1. 在项目页面上的**打开拉取请求**下，选择要合并的拉取请求。如果您未看到拉取请求，请选择**查看所有拉取请求**，然后从列表中选择该拉取请求。或者，在导航窗格中，选择**代码**，再选择**拉取请求**，然后选择要合并的拉取请求。选择**合并**。

1. 从拉取请求的可用合并策略中选择。（可选）选择或取消选择在合并拉取请求后删除源分支的选项，然后选择**合并**。
**注意**  
如果 “**合并**” 按钮处于非活动状态，或者您看到 “**不可合并**” 标签，则表示必需的审阅者尚未批准拉取请求，或者无法在控制台中合并拉取请求。 CodeCatalyst **概述**中的**拉取请求详细信息**区域中的时钟图标会指示尚未批准拉取请求的审阅者。如果所有必需的审阅者都已批准拉取请求，但**合并**按钮仍处于非活跃状态，则可能存在合并冲突。选择带下划线的**不可合并**标签，以查看有关拉取请求无法合并的原因的更多详细信息。您可以在开发环境或 CodeCatalyst 控制台中解决目标分支的合并冲突，然后合并拉取请求，也可以解决冲突并在本地合并，然后将包含合并的提交推送到中的源分支 CodeCatalyst。有关更多信息，请参阅[合并拉取请求（Git）](#pull-requests-merge-git)和您的 Git 文档。

## 覆盖合并要求
<a name="pull-requests-merge-override"></a>

如果您具有**项目管理员**角色，则可以选择合并尚未满足所有必需的审批要求和审批规则的拉取请求。这称为覆盖拉取请求的要求。如果必需的审阅者不可用，或者迫切需要将特定的拉取请求合并到具有无法快速满足的审批规则的分支中，则可以选择执行此操作。<a name="pull-requests-merge-console"></a>

**合并拉取请求**

1. 在要覆盖要求并合并的拉取请求中，选择**合并**按钮旁边的下拉箭头。选择**覆盖审批要求**。

1. 在**覆盖原因**中，详细说明为什么要在拉取请求未达到审批规则和必需的审阅者要求的情况下覆盖此拉取请求。虽然这是一项可选操作，但强烈建议您这样做。

1. （可选）选择合并策略或接受默认值。您也可以选择使用更多详细信息更新自动生成的提交消息。

1. 选择或取消选择该选项可在合并时删除源分支。建议您在覆盖合并拉取请求的要求时保留源分支，直到您有机会与其他团队成员一起审阅该决定。

1. 选择**合并**。

## 合并拉取请求（Git）
<a name="pull-requests-merge-git"></a>

Git 支持许多用于合并和管理分支的选项。以下命令是您可使用的一些选项。有关更多信息，请参阅 [Git 网站](https://git-scm.com/doc)上的可用文档。在合并并推送更改后，请手动关闭拉取请求。有关更多信息，请参阅 [关闭拉取请求](pull-requests-close.md)。


**用于合并分支的常用 Git 命令**  

|  |  | 
| --- |--- |
|  将本地存储库中的源分支的更改合并到本地存储库中的目标分支。  |  `git checkout destination-branch-name` `git merge source-branch-name`  | 
|  将源分支合并到目标分支，并指定快进式合并。这会合并分支并将目标分支指针移动到源分支的最新块。  |  `git checkout destination-branch-name` `git merge --ff-only source-branch-name`  | 
|  将源分支合并到目标分支，并指定压缩合并。这会将源分支中的所有提交合并到目标分支中的单个合并提交。  |  `git checkout destination-branch-name` `git merge --squash source-branch-name`  | 
|  将源分支合并到目标分支，并指定三向合并。这会创建合并提交，并将源分支中的各个提交添加到目标分支。  |  `git checkout destination-branch-name` `git merge --no-ff source-branch-name`  | 
|  删除本地存储库中的源分支。在合并到目标分支并将更改推送到源存储库之后，执行此操作对于清理本地存储库非常有用。  |  `git branch -d source-branch-name`  | 
|  使用本地存储库为远程存储库指定的昵称删除远程存储库（中的源存储库 CodeCatalyst）中的源分支。（注意冒号（`:`）的用法。） 或者，在命令中指定 `--delete`。  |  `git push remote-name :source-branch-name` `git push remote-name --delete source-branch-name`  | 

# 关闭拉取请求
<a name="pull-requests-close"></a>

您可以将拉取请求标记为**已关闭**。这不会合并拉取请求，但有助于您确定哪些拉取请求需要操作，以及哪些拉取请求不再相关。如果您不再计划合并这些更改，或者更改已由另一个拉取请求合并，建议您关闭拉取请求。

关闭拉取请求会自动向拉取请求的创建者以及任何所需或可选的审阅者发送一封电子邮件。这不会自动更改与拉取请求链接的任何事务的状态。

**注意**  
拉取请求一经关闭便无法重新打开。<a name="pull-requests-close-pull-request"></a>

**关闭拉取请求**

1. 导航到要在其中关闭拉取请求的项目。

1. 在项目页面上，将显示打开拉取请求。选择要关闭的拉取请求。

1. 选择**关闭**。

1. 检查信息，然后选择**关闭拉取请求**。