比较和合并 Amazon CodeCommit中的分支 - Amazon CodeCommit
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon CodeCommit 不再向新客户提供。 Amazon CodeCommit 的现有客户可以继续正常使用该服务。了解更多

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

比较和合并 Amazon CodeCommit中的分支

您可以使用 CodeCommit 控制台比较 CodeCommit 存储库中的分支。通过比较分支可帮助您快速查看某分支与默认分支之间的差别,或查看任意两个分支之间的差别。

比较分支与默认分支

使用 CodeCommit 控制台快速查看仓库的分支和默认分支之间的区别。

  1. https://console.aws.amazon.com/codesuite/codemmit /home 打开 CodeCommit 控制台。

  2. 存储库中,选择要比较其中的分支的存储库的名称。

  3. 在导航窗格中,选择提交,然后选择比较提交选项卡。

  4. 目标中,选择默认分支的名称。在中,选择要与默认分支比较的分支。选择 Compare

比较两个特定分支

使用 CodeCommit 控制台查看要比较的两个分支之间的差异。

  1. https://console.aws.amazon.com/codesuite/codemmit /home 打开 CodeCommit 控制台。

  2. 存储库中,选择要比较其中的分支的存储库的名称。

  3. 在导航窗格中,选择提交,然后选择比较提交选项卡。

  4. 目标中,选择要比较的两个分支,然后选择比较。要查看已更改文件的列表,请展开已更改文件列表。您可以通过并排 (拆分视图) 或内联 (统一视图) 方式查看文件中的更改。

    注意

    如果您以 IAM 用户身份登录,则可配置并保存用于查看代码的首选项和其他控制台设置。有关更多信息,请参阅 使用用户首选项

    显示两个分支之间差别的简要视图。

合并两个分支 (Amazon CLI)

您可以通过运行以下命令之一,使用可用的合并策略之一来合并 CodeCommit 存储库中的两个分支: Amazon CLI

您还可以通过运行 create-unreferenced-merge-commit 命令来测试合并。有关更多信息,请参阅解决拉取请求冲突

注意

要将 Amazon CLI 命令与一起使用 CodeCommit,请安装 Amazon CLI。有关更多信息,请参阅 命令行参考

使用合并 CodeCommit 存储库中的两个分支 Amazon CLI
  1. 要使用快速转发合并策略合并两个分支,请运行 merge-branches-by-fast-forward 命令,并指定:

    • 包含要合并的更改的源分支的名称(使用 --source-commit-specifier 选项)。

    • 要合并更改的目标分支的名称(使用 --destination-commit-specifier 选项)。

    • 存储库的名称(使用 --repository-name 选项)。

    例如,要将名为的源分支合并bugfix-1234到名为的存储库preprod中名为的目标分支中MyDemoRepo

    aws codecommit merge-branches-by-fast-forward --source-commit-specifier bugfix-bug1234 --destination-commit-specifier preprod --repository-name MyDemoRepo

    如果成功,该命令产生类似以下内容的输出:

    { "commitId": "4f178133EXAMPLE", "treeId": "389765daEXAMPLE" }
  2. 要使用 squash 合并策略合并两个分支,请运行 merge-branches-by-squash 命令,并指定:

    • 包含要合并的更改的源分支的名称(使用 --source-commit-specifier 选项)。

    • 要合并更改的目标分支的名称(使用 --destination-commit-specifier 选项)。

    • 存储库的名称(使用 --repository-name 选项)。

    • 要包括的提交消息(使用 --commit-message 选项)。

    • 要用于提交的姓名(使用 --name 选项)。

    • 要用于提交的电子邮件地址(使用 --email 选项)。

    例如,要将名为的源分支bugfix-bug1234与名为的存储库bugfix-quarterly中名为的目标分支合并,名为MyDemoRepo

    aws codecommit merge-branches-by-squash --source-commit-specifier bugfix-bug1234 --destination-commit-specifier bugfix-quarterly --author-name "Maria Garcia" --email "maria_garcia@example.com" --commit-message "Merging in fix branches to prepare for a general patch." --repository-name MyDemoRepo

    如果成功,该命令产生类似以下内容的输出:

    { "commitId": "4f178133EXAMPLE", "treeId": "389765daEXAMPLE" }
  3. 要使用三向合并策略合并两个分支,请运行 merge-branches-by-three-way 命令,并指定:

    • 包含要合并的更改的源分支的名称(使用 --source-commit-specifier 选项)。

    • 要合并更改的目标分支的名称(使用 --destination-commit-specifier 选项)。

    • 存储库的名称(使用 --repository-name 选项)。

    • 要包括的提交消息(使用 --commit-message 选项)。

    • 要用于提交的姓名(使用 --name 选项)。

    • 要用于提交的电子邮件地址(使用 --email 选项)。

    例如,要将名为的源分支main与名为的存储库bugfix-1234中名为的目标分支合并,名为MyDemoRepo

    aws codecommit merge-branches-by-three-way --source-commit-specifier main --destination-commit-specifier bugfix-bug1234 --author-name "Jorge Souza" --email "jorge_souza@example.com" --commit-message "Merging changes from main to bugfix branch before additional testing." --repository-name MyDemoRepo

    如果成功,该命令产生类似以下内容的输出:

    { "commitId": "4f178133EXAMPLE", "treeId": "389765daEXAMPLE" }