

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

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

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

您可以使用 AWS CodeCommit 控制台或 AWS CLI 为存储库创建拉取请求。

**Topics**
+ [创建拉取请求（控制台）](#how-to-create-pull-request-console)
+ [创建拉取请求 (AWS CLI)](#how-to-create-pull-request-cli)

## 创建拉取请求（控制台）
<a name="how-to-create-pull-request-console"></a>

您可以使用 CodeCommit 控制台在 CodeCommit 存储库中创建拉取请求。如果您的存储库[配置了通知](how-to-repository-email.md)，则订阅用户将在您创建拉取请求时收到电子邮件。

1. 打开 CodeCommit 控制台：[https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home)。

1. 在**存储库**中，选择要在其中创建拉取请求的存储库的名称。

1. 在导航窗格中，选择**拉取请求**。
**提示**  
您也可以从**分支**和**代码**创建拉取请求。

1. 选择**创建拉取请求**。  
![\[在 CodeCommit 控制台中从“拉取请求”页面创建拉取请求。\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. 在 **Create pull request** 中，在 **Source** 中选择包含要审核的更改的分支。

1. 在 **Destination (目标)** 中，选择要在拉取请求关闭后将代码更改合并到的分支。

1. 选择 **Compare**。将对两个分支进行比较，并显示它们之间的差异。还会执行分析以确定在拉取请求关闭时两个分支能否自动合并。

1. 审核比较详细信息和更改以确保拉取请求包含您要审核的更改和提交。如果不包含，请调整您的源分支和目标分支选择，然后再次选择 **Compare**。

1. 在您对拉取请求的比较结果感到满意以后，在**标题**中为此审核输入一个简短的描述性标题。此标题显示在存储库的拉取请求列表中。

1. （可选）在**描述**中，输入有关此审核的详细信息以及对审核者有用的任何其他信息。

1. 选择**创建**。  
![\[创建拉取请求\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-pull-request-create.png)

拉取请求将显示在存储库的拉取请求列表中。如果您[配置了通知](how-to-repository-email.md)，则该 Amazon SNS 主题的订阅者会收到电子邮件，通知他们新创建了拉取请求。

## 创建拉取请求 (AWS CLI)
<a name="how-to-create-pull-request-cli"></a>

要使用 AWS CLI 命令操作 CodeCommit，请安装 AWS CLI。有关更多信息，请参阅 [命令行参考](cmd-ref.md)。

**使用 AWS CLI 在 CodeCommit 存储库中创建拉取请求**
+ 运行 **create-pull-request** 命令，并指定：
  + 拉取请求的名称（使用 **--title** 选项）。
  + 拉取请求的描述（使用 **--description** 选项）。
  + **create-pull-request** 命令的目标列表，包括：
    + 将在其中创建拉取请求的 CodeCommit 存储库的名称(使用 **repositoryName** 属性)。
    + 包含您要审核的代码更改的分支的名称，也称为源分支（使用 **sourceReference** 属性）。
    + （可选）如果您不想合并到默认分支，还需要提供要将代码更改合并到的分支（也称为目标分支）的名称（使用 **destinationReference** 属性）。
  + 客户端生成的唯一等幂令牌（使用 **--client-request-token** 选项）。

  此示例创建一个名为 *Pronunciation difficulty analyzer* 的拉取请求，其描述为 *Please review these changes by Tuesday*，并以 *jane-branch* 源分支为目标。拉取请求将合并到名为 `MyDemoRepo` 的 CodeCommit 存储库的默认分支 *main* 中：

  ```
  aws codecommit create-pull-request --title "Pronunciation difficulty analyzer" --description "Please review these changes by Tuesday" --client-request-token 123Example --targets repositoryName=MyDemoRepo,sourceReference=jane-branch 
  ```