合并拉取请求 - Amazon CodeCatalyst

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

合并拉取请求

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

注意

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

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

合并拉取请求(控制台)

如果源分支和目标分支之间没有合并冲突,并且所有必需的审阅者都批准了拉取请求,则可以在 CodeCatalyst 控制台中合并拉取请求。如果存在冲突,或者无法完成合并,则合并按钮处于非活动状态,并显示 “不可合并” 标签。在这种情况下,您必须获得所有所需批准者的批准,必要时在本地解决冲突,并在合并之前推送这些更改。合并拉取请求将自动向拉取请求的创建者以及任何必填或可选的审阅者发送一封电子邮件。它不会自动关闭或更改与拉取请求相关的任何议题的状态。

提示

您可以配置哪些拉取请求事件,这些事件将在您的个人资料中收到有关电子邮件的电子邮件。有关更多信息,请参阅 发送 Slack 和电子邮件通知 CodeCatalyst

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

  2. 在项目页面的 “打开拉取请求” 下,选择要合并的拉取请求。如果您没有看到拉取请求,请选择 “查看所有拉取请求”,然后从列表中进行选择。或者,在导航窗格中,选择代码,选择拉取请求,然后选择要合并的拉取请求。选择 Merge (合并)

  3. 从拉取请求的可用合并策略中进行选择。(可选)选择或取消选择合并拉取请求后删除源分支的选项,然后选择合并

    注意

    如果 “合并” 按钮处于非活动状态,或者您看到 “不可合并” 标签,则表示必需的审阅者尚未批准拉取请求,或者无法在控制台中合并拉取请求。 CodeCatalyst 概述中 “拉取请求详情” 区域中的时钟图标会显示尚未批准拉取请求的审阅者。如果所有必需的审阅者都批准了拉取请求,但 “合并” 按钮仍处于非活动状态,则可能存在合并冲突。选择带下划线的 “不可合并” 标签,以查看有关拉取请求无法合并的原因的更多详细信息。您可以在开发环境或 CodeCatalyst 控制台中解决目标分支的合并冲突,然后合并拉取请求,也可以解决冲突并在本地合并,然后将包含合并的提交推送到中的源分支 CodeCatalyst。有关更多信息,请参阅合并拉取请求 (Git)和您的 Git 文档。

忽略合并要求

如果您具有项目管理员角色,则可以选择合并尚未满足所需批准和批准规则所有要求的拉取请求。这被称为覆盖拉取请求的要求。如果所需的审阅者不可用,或者迫切需要将特定的拉取请求合并到具有无法快速满足的批准规则的分支中,则可以选择这样做。

合并拉取请求
  1. 在要覆盖要求并合并的拉取请求中,选择 “合并” 按钮旁边的下拉箭头。选择 “改写批准要求”。

  2. Override reason 中,详细说明为什么要合并此拉取请求而不符合批准规则和所需的审阅者要求。虽然这是可选的,但强烈建议这样做。

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

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

  5. 选择 Merge (合并)

合并拉取请求 (Git)

Git 支持许多用于合并和管理分支的选项。以下命令是您可以使用的部分选项。有关更多信息,请参阅 Git 网站上的可用文档。合并并推送更改后,请手动关闭拉取请求。有关更多信息,请参阅 关闭拉取请求

用于合并分支的常用 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