使用 Amazon CodeCommit 存储库中的拉取请求 - Amazon CodeCommit
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon CodeCommit 存储库中的拉取请求

拉取请求是您和其他存储库用户用于审查、评论和合并分支间的代码更改的主要方式。您可以使用拉取请求与他人协作审查代码更改中次要的更改或修复、主要功能增加或已发布软件的新版本。以下是一个适用于拉取请求的可能的工作流程:

Li Juan 是一位开发人员,使用名为 MyDemoRepo 的存储库工作。她需要在即将推出的产品版本中开发一项新功能。为使她的工作与生产就绪代码相独立,她独立于默认分支创建了一个分支,将其命名为 feature-randomizationfeature。她编写代码、进行提交并将新功能代码推送到此分支中。在将更改合并到默认分支中之前,她希望其他存储库用户审查代码质量。为执行此操作,她创建了一个拉取请求。拉取请求包含她的工作分支与她打算合并更改的代码分支 (在本示例中为默认分支) 之间的比较。她还可以创建审批规则,要求指定数量的用户对其拉取请求进行审批。她甚至可以指定用户审批池。其他用户会审查她的代码和更改,同时添加评论和建议。她可能会多次根据评论更改代码并更新其工作分支。每当她将更改推送到 CodeCommit 中的该分支时,这些更改都将并入拉取请求。当拉取请求处于打开状态时,她还可能并入在预期目标分支中所做的更改,以使用户可以确保他们在上下文中审查所有提议的更改。在她及其审核人感到满意并且满足了审批规则条件(如果有)时,她或一位审核人可以合并代码并关闭拉取请求。


            创建拉取请求

拉取请求需要两个分支:源分支 (包含要审查的代码) 和目标分支 (被审查的代码将合并到其中)。源分支包含 AFTER 提交,该提交包含要合并到目标分支中的更改。目标分支包含 BEFORE 提交,表示代码在拉取请求分支合并到目标分支中之前的状态。选择的合并策略会影响在 CodeCommit 控制台中如何在源和目标分支之间合并提交的详细信息。有关 CodeCommit 中的合并策略的更多信息,请参阅合并拉取请求(控制台)


            拉取请求的源分支和目标分支(显示之前提交和之后提交之间的关系)

拉取请求显示创建拉取请求时源分支的提示与目标分支中的最新提交之间的差异,以便于用户查看并评论更改。通过将更改提交和推送到源分支,可以更新拉取请求以响应评论。


            在拉取请求中添加对行的评论。

当代码经过审核并满足审批规则要求(如果有)时,您可以通过以下几种方式关闭拉取请求:

  • 本地合并分支并推送更改。如果使用快进合并策略,这会自动关闭请求,并且不会产生任何合并冲突。

  • 使用 Amazon CodeCommit 控制台关闭拉取请求而不进行合并、解决合并冲突,如果没有冲突,则使用可用的合并策略关闭及合并分支。

  • 请使用 Amazon CLI。

在创建拉取请求之前,请:

  • 确保您已将要审核的代码更改提交并推送至分支(源分支)。

  • 为存储库设置通知,这样其他用户可以收到有关拉取请求及其更改的通知。(虽然此步骤是可选的,但我们建议您这样做。)

  • 创建审批规则模板并将其与存储库关联,以便为拉取请求自动创建审批规则,从而帮助确保代码质量。有关更多信息,请参阅使用审批规则模板

如果已为 Amazon Web Services 账户中的存储库用户设置 IAM 用户,则拉取请求会更有效。可以更轻松地确定哪个用户发布了什么注释。另一个优点是 IAM 用户可以使用 Git 凭证访问存储库。有关更多信息,请参阅步骤 1:CodeCommit 的初始配置。您可以对其他类型的用户(包括联合访问用户)使用拉取请求。

有关使用 CodeCommit 中的存储库的其他方面的信息,请参阅使用存储库使用审批规则模板使用文件使用提交使用分支、和使用用户首选项