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

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

比较和合并中的分支Amazon CodeCommit

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

将分支与默认分支进行比较

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

  1. 通过 https://console.aws.amazon.com/codesuite/codecommit/home 打开 CodeCommit 主机。

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

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

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

比较两个特定的分支

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

  1. 通过 https://console.aws.amazon.com/codesuite/codecommit/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 的存储库中名为 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- bug1234 的目标分支合并 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 的目标分支合并到一个名为 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" }