将本地或非版本控制内容迁移到 Amazon CodeCommit - Amazon CodeCommit
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将本地或非版本控制内容迁移到 Amazon CodeCommit

本主题中的过程演示如何将计算机上的现有项目或本地内容迁移到 CodeCommit 存储库。在该过程中,您将:

  • 完成 CodeCommit 所需的初始设置。

  • 创建 CodeCommit 存储库。

  • 使某个本地文件夹置于 Git 版本控制之下,并将该文件夹的内容推送到 CodeCommit 存储库。

  • 查看 CodeCommit 存储库中的文件。

  • 与您的团队共享 CodeCommit 存储库。

步骤 0:访问 CodeCommit 所需的设置

在将本地内容迁移到 CodeCommit 之前,您必须为 CodeCommit 创建和配置 IAM 用户,并配置您的本地计算机以进行访问。您还应安装 Amazon CLI 来管理 CodeCommit。虽然您可以在没有 Amazon CLI 的情况下执行大多数 CodeCommit 任务,但它为使用 Git 提供了灵活性。

如果您已完成 CodeCommit 所需的设置,请跳到步骤 1:创建 CodeCommit 存储库

创建和配置用于访问 CodeCommit 的 IAM 用户
  1. 前往 http://aws.amazon.com,并选择注册,创建一个 Amazon Web Services 账户。

  2. 创建 IAM 用户或使用您的 Amazon Web Services 账户中的现有用户。确保您具有与该 IAM 用户关联的访问密钥 ID 和秘密访问密钥。有关更多信息,请参阅在 Amazon Web Services 账户中创建 IAM 用户

    注意

    CodeCommit 需要 Amazon Key Management Service。如果使用现有的 IAM 用户,请确保未向该用户附加明确拒绝 CodeCommit 所需的 Amazon KMS 操作的策略。有关更多信息,请参阅 Amazon KMS 和加密

  3. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  4. 在 IAM 控制台的导航窗格中,选择用户,然后选择要配置进行 CodeCommit 访问的 IAM 用户。

  5. Permissions 选项卡上,选择 Add Permissions

  6. Grant permissions (授予权限) 中,选择 Attach existing policies directly (直接附加现有策略)

  7. 从策略列表中选择 AWSCodeCommitPowerUser 或用于 CodeCommit 访问的其他托管策略。有关更多信息,请参阅适用于 CodeCommit 的 Amazon 托管式策略

    选择要附加的策略后,选择下一步:审核以审核要附加到 IAM 用户的策略列表。如果列表正确,选择 Add permissions

    有关 CodeCommit 托管策略以及与其他组和用户共享访问存储库的更多信息,请参阅共享存储库Amazon CodeCommit 的身份验证和访问控制

安装和配置 Amazon CLI
  1. 在本地计算机上,下载并安装 Amazon CLI。这是从命令行与 CodeCommit 进行交互的先决条件。我们建议您安装 Amazon CLI 版本 2。它是 Amazon CLI 的最新主版本,支持所有最新功能。它是唯一支持使用根账户、联合访问权限或临时证书与 git-remote-codecommit 的 Amazon CLI 版本。

    有关更多信息,请参阅使用 Amazon 命令行界面进行设置

    注意

    CodeCommit 仅适用于 Amazon CLI 1.7.38 及更高版本。作为最佳做法,请安装 Amazon CLI 或将其升级到可用的最新版本。要确定您安装的 Amazon CLI 的版本,请运行 aws --version 命令。

    要将旧版本的 Amazon CLI 升级到最新版本,请参阅安装 Amazon Command Line Interface

  2. 运行此命令以验证 Amazon CLI 中的 CodeCommit 命令是否已安装:

    aws codecommit help

    该命令返回 CodeCommit 命令的列表。

  3. 使用 configure 命令通过配置文件来配置 Amazon CLI,如下所示:

    aws configure

    出现提示时,指定要用于 CodeCommit 的 IAM 用户的 Amazon 访问密钥和 Amazon 秘密访问密钥。此外,请务必指定存储库所在的 Amazon Web Services 区域,例如 us-east-2。系统提示指定默认输出格式时,指定 json。例如,如果您正在为 IAM 用户配置相关配置文件:

    AWS Access Key ID [None]: Type your IAM user Amazon access key ID here, and then press Enter AWS Secret Access Key [None]: Type your IAM user Amazon secret access key here, and then press Enter Default region name [None]: Type a supported region for CodeCommit here, and then press Enter Default output format [None]: Type json here, and then press Enter

    有关创建和配置相关配置文件以与 Amazon CLI 配合使用的详细信息,请参阅以下内容:

    要连接到另一个 Amazon Web Services 区域中的存储库或资源,您必须使用默认区域名称重新配置 Amazon CLI。CodeCommit 支持的默认区域名称包括:

    • us-east-2

    • us-east-1

    • eu-west-1

    • us-west-2

    • ap-northeast-1

    • ap-southeast-1

    • ap-southeast-2

    • ap-southeast-3

    • me-central-1

    • eu-central-1

    • ap-northeast-2

    • sa-east-1

    • us-west-1

    • eu-west-2

    • ap-south-1

    • ap-south-1

    • ca-central-1

    • us-gov-west-1

    • us-gov-east-1

    • eu-north-1

    • ap-east-1

    • me-south-1

    • cn-north-1

    • cn-northwest-1

    • eu-south-1

    • ap-northeast-3

    • af-south-1

    • il-central-1

    有关 CodeCommit 和 Amazon Web Services 区域的更多信息,请参阅区域和 Git 连接端点。有关 IAM、访问密钥和秘密密钥的更多信息,请参阅‭如何获取凭证?管理 IAM 用户的访问密钥。有关 Amazon CLI 和配置文件的更多信息,请参阅命名配置文件

接下来,您必须安装 Git。

  • 对于 Linux、macOS 或 Unix

    要使用 CodeCommit 存储库中的文件、提交和其他信息,您必须在本地计算机上安装 Git。CodeCommit 支持 Git 1.7.9 及更高版本。Git 版本 2.28 支持为初始提交配置分支名称。我们建议使用最新版本的 Git。

    要安装 Git,建议您访问 Git 下载等网站。

    注意

    Git 是一个不断发展的平台,会定期进行更新。有时,功能上的更改可能会影响到它与 CodeCommit 协作的方式。如果在使用特定版本的 Git 和 CodeCommit 时遇到问题,请参阅故障排除中的信息。

  • 对于 Windows:

    要使用 CodeCommit 存储库中的文件、提交和其他信息,您必须在本地计算机上安装 Git。CodeCommit 支持 Git 1.7.9 及更高版本。Git 版本 2.28 支持为初始提交配置分支名称。我们建议使用最新版本的 Git。

    要安装 Git,建议访问 Git for Windows 等网站。如果您使用此链接安装 Git,则可以接受除以下设置之外的所有安装默认设置:

    注意

    Git 是一个不断发展的平台,会定期进行更新。有时,功能上的更改可能会影响到它与 CodeCommit 协作的方式。如果在使用特定版本的 Git 和 CodeCommit 时遇到问题,请参阅故障排除中的信息。

CodeCommit 支持 HTTPS 和 SSH 身份验证。要完成设置,您必须配置用于 CodeCommit 的 Git 凭证(建议大多数用户使用 HTTPS)、访问 CodeCommit 时使用的 SSH 密钥对 (SSH)、git-remote-codecommit(建议使用联合身份访问的用户采用)或 Amazon CLI 中包含的凭证助手。

步骤 1:创建 CodeCommit 存储库

在本部分中,您将使用 CodeCommit 控制台创建在本教程的其余部分中使用的 CodeCommit 存储库。要使用 Amazon CLI 创建存储库,请参阅创建存储库 (Amazon CLI)

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

  2. 在区域选择器中,选择要在其中创建存储库的 Amazon Web Services 区域。有关更多信息,请参阅 区域和 Git 连接端点

  3. 存储库页面上,选择创建存储库

  4. 创建存储库页面上的存储库名称中,为存储库输入名称。

    注意

    存储库名称区分大小写。名称在 Amazon Web Services 区域中对于 Amazon Web Services 账户必须唯一。

  5. (可选)在描述中,输入存储库的描述。这可以帮助您及其他用户了解存储库的用途。

    注意

    “描述”字段在控制台中显示“Markdown”,并接受所有 HTML 字符和有效的 Unicode 字符。如果您是使用 GetRepositoryBatchGetRepositories API 的应用程序开发人员,并且打算在 Web 浏览器中显示“存储库描述”字段,请参阅 CodeCommit API 参考

  6. (可选)选择添加标签,向您的存储库添加一个或多个存储库标签(自定义属性标签,可帮助您组织和管理您的 Amazon 资源)。有关更多信息,请参阅在 Amazon CodeCommit 中标记存储库

  7. (可选)展开其他配置,以指定是使用默认 Amazon 托管式密钥还是您自己的客户托管密钥来加密和解密此存储库中的数据。如果您选择使用自己的客户托管密钥,则必须确保该密钥在您创建存储库的 Amazon Web Services 区域可用,并且该密钥处于活跃状态。有关更多信息,请参阅Amazon Key Management Service 和 Amazon CodeCommit 存储库加密

  8. (可选)如果此存储库包含 Java 或 Python 代码,并且您希望 CodeGuru Reviewer 对其进行分析,请选择启用适用于 Java 和 Python 的 Amazon CodeGuru Reviewer。CodeGuru Reviewer 使用多个机器学习模型来查找代码缺陷,并对拉取请求提供改进和修复建议。有关更多信息,请参阅Amazon CodeGuru Reviewer 用户指南

  9. 选择创建

创建后,存储库将显示在存储库列表中。在 URL 列中,选择复制图标,然后选择用于连接到 CodeCommit 的协议(HTTPS 或 SSH)。复制 URL。

例如,如果将存储库命名为 MyFirstRepo 并且使用 HTTPS,则 URL 将如下所示:

https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyFirstRepo

稍后在步骤 2:将本地内容迁移到 CodeCommit 存储库中您将需要该 URL。

步骤 2:将本地内容迁移到 CodeCommit 存储库

现在您有了一个 CodeCommit 存储库,可以在本地计算机上选择一个目录,将其转换为本地 Git 存储库。可以使用 git init 命令将现有的非版本控制内容转化为 Git 存储库,或在尚无任何文件或内容的情况下初始化一个新的空存储库。

  1. 在本地计算机上的终端或命令行中,进入要用作存储库源的目录。

  2. 运行以下命令将 Git 配置为使用名为 main 的默认分支:

    git config --local init.defaultBranch main

    您也可以运行以下命令,将所有新创建的存储库的默认分支名称设置为 main

    git config --global init.defaultBranch main
  3. 运行 git init 命令在该目录中初始化 Git 版本控制。这会在启用版本控制跟踪的目录的根目录中创建一个 .git 子目录。.git 文件夹还包含存储库的所有必需元数据。

    git init
  4. 运行以下命令,检查初始化目录的状态:

    git status

    添加要置于版本控制之下的文件。在本教程中,将运行带 . 说明符的 git add 命令来添加该目录中的所有文件。有关其他选项的信息,请参阅 Git 文档。

    git add .
  5. 为添加的文件创建一个带有提交消息的提交。

    git commit -m "Initial commit"
  6. 运行 git push 命令,指定目标 CodeCommit 存储库的 URL 和名称以及 --all 选项。(这是您在步骤 1:创建 CodeCommit 存储库中复制的 URL。)

    例如,如果将存储库命名为 MyFirstRepo 并设置为使用 HTTPS,则将运行以下命令:

    git push https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyFirstRepo --all

步骤 3:查看 CodeCommit 中的文件

推送完目录内容后,可以使用 CodeCommit 控制台快速查看存储库中的所有文件。

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

  2. 存储库中,从列表中选择存储库的名称(例如,MyFirstRepository)。

  3. 查看存储库中的文件,以了解分支、克隆 URL、设置等信息。

步骤 1:共享 CodeCommit 存储库

在 CodeCommit 中创建存储库时,会生成两个端点:一个用于 HTTPS 连接,一个用于 SSH 连接。两者都能提供安全的网络连接。您的用户可以使用这两种协议中的任何一种。不管您向用户推荐哪种协议,这两种终端节点都保持有效。在与他人共享您的存储库之前,您必须创建允许其他用户访问该存储库的 IAM policy。向您的用户提供下述访问说明。

为存储库创建客户托管策略
  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. Dashboard 导航区域中选择 Policies,然后选择 Create Policy

  3. 创建策略页面上,选择导入管理型策略

  4. 导入管理型策略页面的筛选策略中,输入 AWSCodeCommitPowerUser。选择策略名称旁的按钮,然后选择导入

  5. 创建策略页面上,选择 JSON。将 CodeCommit 操作的 Resource 行的“*”部分替换为 CodeCommit 存储库的 Amazon 资源名称 (ARN),如下所示:

    "Resource": [ "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo" ]
    提示

    要查找 CodeCommit 存储库的 ARN,请转到 CodeCommit 控制台,从列表中选择存储库名称,然后选择设置。有关更多信息,请参阅查看存储库详细信息

    若要将该策略应用到多个存储库,请通过指定其 ARN 将各个存储库添加为资源。在每个资源语句之间加上逗号,如下所示:

    "Resource": [ "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo", "arn:aws:codecommit:us-east-2:111111111111:MyOtherDemoRepo" ]

    完成编辑后,选择查看策略

  6. 查看策略页面上的名称中,输入策略的新名称(例如 AWSCodeCommitPowerUser-MyDemoRepo)。(可选)提供此策略的描述。

  7. 选择创建策略

要管理对您的存储库的访问,请为其用户创建一个 IAM 组、向该组添加 IAM 用户,然后附加在上一步中创建的客户管理型策略。附加访问所需的任何其他策略,例如 IAMSelfManageServiceSpecificCredentialsIAMUserSSHKeys

  1. 登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. Dashboard 导航区域中选择 Groups,然后选择 Create New Group

  3. 设置组名页面上的组名中,为组输入名称(例如 MyDemoRepoGroup),然后选择下一步。请考虑在组名称中包含存储库名称。

    注意

    该名称必须在 Amazon Web Services 账户间保持唯一。

  4. 选中您在前一部分中创建的客户管理型策略旁边的复选框(例如 AWSCodeCommitPowerUser-MyDemoRepo)。

  5. Review 页面上,选择 Create Group。IAM 将使用已附加的指定策略创建此组。此组会显示在与您的 Amazon Web Services 账户关联的组列表中。

  6. 从列表中选择您的组。

  7. 在组摘要页面上,选择用户 选项卡,然后选择向组添加多个用户。在显示与您的 Amazon Web Services 账户关联的所有用户的列表中,选中要允许其访问 CodeCommit 存储库的用户旁边的复选框,然后选择添加用户

    提示

    您可以使用搜索框快速地按名称查找用户。

  8. 添加用户后,关闭 IAM 控制台。

在创建 IAM 用户以使用您配置的策略组和策略访问 CodeCommit 后,向该用户发送连接到存储库所需的信息。

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

  2. 在区域选择器中,选择创建存储库的 Amazon Web Services 区域。存储库特定于 Amazon Web Services 区域。有关更多信息,请参阅区域和 Git 连接端点

  3. Repositories (存储库) 页面上,选择要共享的存储库。

  4. 克隆 URL 中,选择您希望用户使用的协议。这会复制连接协议的克隆 URL。

  5. 向您的用户发送克隆 URL 以及任何其他说明,如安装 Amazon CLI、对配置文件进行配置或安装 Git 的说明。请确保包含连接协议(例如 HTTPS)的配置信息。