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

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

比较和合并 Amazon CodeCommit 中的分支

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

比较分支与默认分支

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

  1. 打开 CodeCommit 控制台,网址为 https://console.aws.amazon.com/codesuite/codecommit/home

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

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

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

比较两个特定分支

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

  1. 打开 CodeCommit 控制台,网址为 https://console.aws.amazon.com/codesuite/codecommit/home

  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 的存储库中名为 prepro d 的目标分支中,请执行以下操作: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-bug 1234 的源分支与名为 bugfix- q u artry 的目标分支合并在名为: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" }