

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

# 将本地或非版本化内容迁移到 AWS CodeCommit
<a name="how-to-migrate-repository-local"></a>

本主题中的过程向您介绍如何将计算机上的现有项目或本地内容迁移到 CodeCommit 存储库。在该过程中，您将：
+ 完成所需的初始设置 CodeCommit。
+ 创建 CodeCommit 存储库。
+ 将本地文件夹置于 Git 版本控制之下，然后将该文件夹的内容推送到 CodeCommit 存储库。
+ 查看 CodeCommit 存储库中的文件。
+ 与您的团队共享 CodeCommit 存储库。

![\[将本地项目迁移到 CodeCommit\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-migrate-local.png)


**Topics**
+ [步骤 0：需要进行设置才能访问 CodeCommit](#how-to-migrate-local-setup)
+ [步骤 1：创建 CodeCommit 存储库](#how-to-migrate-local-create)
+ [步骤 2：将本地内容迁移到 CodeCommit 存储库](#how-to-migrate-local-version)
+ [步骤 3：查看中的文件 CodeCommit](#how-to-migrate-local-view)
+ [步骤 4：共享 CodeCommit 存储库](#how-to-migrate-local-share)

## 步骤 0：需要进行设置才能访问 CodeCommit
<a name="how-to-migrate-local-setup"></a>

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

如果您已经做好了准备 CodeCommit，则可以直接跳到[步骤 1：创建 CodeCommit 存储库](#how-to-migrate-local-create)。

**创建和配置用于访问的 IAM 用户 CodeCommit**

1. 前往 [http://aws.amazon.com](https://aws.amazon.com/)，并选择**注册**，创建一个 Amazon Web Services 账户。

1. 创建 IAM 用户或使用您的 Amazon Web Services 账户中的现有用户。确保您具有与该 IAM 用户关联的访问密钥 ID 和秘密访问密钥。有关更多信息，请参阅[在 Amazon Web Services 账户中创建 IAM 用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html)。
**注意**  
CodeCommit 要求 AWS Key Management Service。如果您使用的是现有的 IAM 用户，请确保该用户没有明确拒绝所要求的 AWS KMS 操作的策略 CodeCommit。有关更多信息，请参阅 [AWS KMS 和加密](encryption.md)。

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. **在 IAM 控制台的导航窗格中，选择 Users，然后选择要配置 CodeCommit 访问权限的 IAM 用户。**

1. 在 **Permissions** 选项卡上，选择 **Add Permissions**。

1. 在 **Grant permissions (授予权限)** 中，选择 **Attach existing policies directly (直接附加现有策略)**。

1. 从策略列表中，选择**AWSCodeCommitPowerUser**或其他托管策略进行 CodeCommit 访问。有关更多信息，请参阅 [AWS 的托管策略 CodeCommit](security-iam-awsmanpol.md)。

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

    有关 CodeCommit 托管策略以及与其他群组和用户共享仓库访问权限的更多信息，请参阅[共享存储库](how-to-share-repository.md)和[的身份验证和访问控制 AWS CodeCommit](auth-and-access-control.md)。

**要安装和配置 AWS CLI**

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

   有关更多信息，请参阅[使用 AWS 命令行界面进行设置](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html)。
**注意**  
CodeCommit 仅适用于 1.7.38 及更高 AWS CLI 版本。作为最佳实践，请安装或升级 AWS CLI 到可用的最新版本。要确定已安装的 AWS CLI 版本，请运行**aws --version**命令。  
要将旧版本的升级 AWS CLI 到最新版本，请参阅[安装 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html)。

1. 运行此命令以验证的 CodeCommit 命令 AWS CLI 是否已安装。

   ```
   aws codecommit help
   ```

   此命令返回 CodeCommit 命令列表。

1.  AWS CLI 使用**configure**命令配置配置文件，如下所示：。

   ```
   aws configure
   ```

   出现提示时，指定要与之 AWS 配合使用的 IAM 用户的访问 AWS 密钥和私有访问密钥 CodeCommit。另外，请务必指定存储库的 AWS 区域 存在位置，例如`us-east-2`。系统提示指定默认输出格式时，指定 `json`。例如，如果您正在为 IAM 用户配置相关配置文件：

   ```
   AWS Access Key ID [None]: Type your IAM user AWS access key ID here, and then press Enter
   AWS Secret Access Key [None]: Type your IAM user AWS 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
   ```

   有关创建和配置用于的配置文件的更多信息 AWS CLI，请参阅以下内容：
   + [命名配置文件](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
   + [在中使用 IAM 角色 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html)
   + [设置命令](https://docs.aws.amazon.com/cli/latest/reference/set.html)
   + [使用轮换凭证连接到 AWS CodeCommit 存储库](temporary-access.md)

   要连接到存储库或其他存储库中的资源 AWS 区域，必须 AWS 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 和的更多信息 AWS 区域，请参阅[区域和 Git 连接端点](regions.md)。有关 IAM、访问密钥和秘密密钥的更多信息，请参阅‭[如何获取凭证？](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_Introduction.html#IAM_SecurityCredentials)和[管理 IAM 用户的访问密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingCredentials.html)。有关 AWS CLI 和配置文件的更多信息，请参阅[命名配置文件](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)。

接下来，您必须安装 Git。
+ **对于 Linux、macOS 或 Unix**：

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

  要安装 Git，建议您访问 [Git 下载](http://git-scm.com/downloads)等网站。
**注意**  
Git 是一个不断发展的平台，会定期进行更新。有时，功能更改可能会影响其工作方式 CodeCommit。如果您在使用特定版本的 Git 时遇到问题 CodeCommit，请查看中的信息[故障排除](troubleshooting.md)。
+ **对于 Windows：**

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

  要安装 Git，建议访问 [Git for Windows](https://gitforwindows.org/) 等网站。如果您使用此链接安装 Git，则可以接受除以下设置之外的所有安装默认设置：
  + 在**调整 PATH 环境**步骤中出现提示时，从命令行中选择使用 Git 的选项。
  + （可选）如果您打算将 HTTPS 与中包含的凭据帮助程序一起使用， AWS CLI 而不是为其配置 Git 凭据 CodeCommit，请在 “**配置额外选项**” 页面上，确保清除 “**启用 Git 凭据管理器**” 选项。仅当 IAM 用户配置 Git 凭证时， CodeCommit Git 凭证管理器才兼容。有关更多信息，请参阅[适用于使用 Git 凭证的 HTTPS 用户](setting-up-gc.md)和[Windows 版 Git：我安装了 Windows 版 Git，但在访问我的存储库时被系统拒绝 (403)](troubleshooting-ch.md#troubleshooting-windowshttps)。
**注意**  
Git 是一个不断发展的平台，会定期进行更新。有时，功能更改可能会影响其工作方式 CodeCommit。如果您在使用特定版本的 Git 时遇到问题 CodeCommit，请查看中的信息[故障排除](troubleshooting.md)。

CodeCommit 同时支持 HTTPS 和 SSH 身份验证。要完成设置，您必须配置 Git 凭据 CodeCommit （HTTPS，建议大多数用户使用）、访问时使用的 SSH 密钥对 **git-remote-codecommit** (SSH) CodeCommit、（建议使用联合访问的用户使用）或中包含的凭证助手。 AWS CLI
+ 有关在所有支持的操作系统上设置 Git 凭证的信息，请参阅[步骤 3：创建 Git 凭据，以便通过 HTTPS 连接到 CodeCommit](setting-up-gc.md#setting-up-gc-iam)。
+ 有关在 Linux、macOS 或 Unix 上设置 SSH 的信息，请参阅[SSH 和 Linux、macOS 或 Unix：为 Git 设置公钥和私钥以及 CodeCommit](setting-up-ssh-unixes.md#setting-up-ssh-unixes-keys-unixes)。
+  有关在 Windows 上设置 SSH 的信息，请参阅[第 3 步：为 Git 设置公钥和私钥以及 CodeCommit](setting-up-ssh-windows.md#setting-up-ssh-windows-keys-windows)。
+ 对于 **git-remote-codecommit**，请参阅[使用的 HTTPS 连接 AWS CodeCommit 的设置步骤 git-remote-codecommit](setting-up-git-remote-codecommit.md)。
+ 有关 Linux、macOS 或 Unix 上的凭证助手，请参阅[设置凭证助手（Linux、macOS 或 Unix）](setting-up-https-unixes.md#setting-up-https-unixes-ch-config)。
+ 有关在 Windows 上设置凭证辅助程序的信息，请参阅[设置凭证辅助程序 (Windows)](setting-up-https-windows.md#setting-up-https-windows-ch-config)。

## 步骤 1：创建 CodeCommit 存储库
<a name="how-to-migrate-local-create"></a>

在本节中，您将使用 CodeCommit 控制台创建用于本教程其余部分的 CodeCommit 存储库。要使用创建存储库，请参阅[创建存储库 (AWS CLI)](how-to-create-repository.md#how-to-create-repository-cli)。 AWS CLI 

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在区域选择器中，选择要创建存储库 AWS 区域 的位置。有关更多信息，请参阅 [区域和 Git 连接端点](regions.md)。

1. 在**存储库**页面上，选择**创建存储库**。

1. 在**创建存储库**页面上的**存储库名称**中，为存储库输入名称。
**注意**  
存储库名称区分大小写。名称在 AWS 区域 中对于 Amazon Web Services 账户必须唯一。

1. （可选）在**描述**中，输入存储库的描述。这可以帮助您及其他用户了解存储库的用途。
**注意**  
“描述”字段在控制台中显示“Markdown”，并接受所有 HTML 字符和有效的 Unicode 字符。如果您是使用`GetRepository`或的应用程序开发人员，`BatchGetRepositories` APIs 并且计划在 Web 浏览器中显示存储库描述字段，请参阅 [CodeCommit API 参考](https://docs.aws.amazon.com/codecommit/latest/APIReference/)。

1. （可选）选择 **Add t** ag，向存储库添加一个或多个存储库标签（可帮助您组织和管理 AWS 资源的自定义属性标签）。有关更多信息，请参阅 [在中标记存储库 AWS CodeCommit](how-to-tag-repository.md)。

1. （可选）展开**其他配置**以指定是使用默认密钥 AWS 托管式密钥 还是您自己的客户托管密钥来加密和解密此存储库中的数据。如果您选择使用自己的客户托管密钥，则必须确保该密钥在您创建存储库 AWS 区域 的地方可用，并且该密钥处于活动状态。有关更多信息，请参阅 [AWS Key Management Service 以及 AWS CodeCommit 存储库的加密](encryption.md)。

1. （可选）如果此存储库包含 **Java 或 Python 代码，并且您想让 CodeGuru Reviewer 对其进行分析，请选择 “启用 Java 和 Python 版 Ama** zon CodeGuru Reviewer”。 CodeGuru Reviewer 使用多个机器学习模型来查找代码缺陷，并对拉取请求提出改进和修复建议。有关更多信息，请参阅 [https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/Welcome.html](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/Welcome.html)。

1. 选择**创建**。

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

例如，如果您为存储库命名*MyFirstRepo*并且使用的是 HTTPS，则网址将如下所示：

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

稍后在[步骤 2：将本地内容迁移到 CodeCommit 存储库](#how-to-migrate-local-version)中您将需要该 URL。

## 步骤 2：将本地内容迁移到 CodeCommit 存储库
<a name="how-to-migrate-local-version"></a>

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

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

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

   ```
   git config --local init.defaultBranch main
   ```

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

   ```
   git config --global init.defaultBranch main
   ```

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

   ```
   git init
   ```

1. 运行以下命令，检查初始化目录的状态：

   ```
   git status
   ```

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

   ```
   git add .
   ```

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

   ```
   git commit -m "Initial commit"
   ```

1. 运行**git push**命令，指定目标 CodeCommit 存储库的 URL 和名称以及`--all`选项。（这是您在[步骤 1：创建 CodeCommit 存储库](#how-to-migrate-local-create)中复制的 URL。）

   例如，如果您为存储库命名*MyFirstRepo*并设置为使用 HTTPS，则将运行以下命令：

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

## 步骤 3：查看中的文件 CodeCommit
<a name="how-to-migrate-local-view"></a>

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

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在**存储库**中，从列表中选择存储库的名称（例如*MyFirstRepository*）。

1. 查看存储库中的分支、克隆 URLs、设置等文件。

## 步骤 4：共享 CodeCommit 存储库
<a name="how-to-migrate-local-share"></a>

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

**为存储库创建客户托管策略**

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在 **Dashboard** 导航区域中选择 **Policies**，然后选择 **Create Policy**。

1. 在**创建策略**页面上，选择**导入管理型策略**。

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

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

   ```
   "Resource": [
    "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo"
    ]
   ```
**提示**  
**要查找 CodeCommit 仓库的 ARN，请转到 CodeCommit 控制台，从列表中选择仓库名称，然后选择 “设置”。**有关更多信息，请参阅 [查看存储库详细信息](how-to-view-repository-details.md)。

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

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

   完成编辑后，选择**查看策略**。

1. 在 “**查看策略**” 页面的 “**名称**” 中，输入策略的新名称（例如*AWSCodeCommitPowerUser-MyDemoRepo*）。（可选）提供此策略的描述。

1. 选择**创建策略**。

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

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在 **Dashboard** 导航区域中选择 **Groups**，然后选择 **Create New Group**。

1. 在**设置组名**页面上的**组名**中，为组输入名称（例如，*MyDemoRepoGroup*），然后选择**下一步**。请考虑在组名称中包含存储库名称。
**注意**  
该名称必须在 Amazon Web Services 账户间保持唯一。

1. 选中您在上一节中创建的客户托管策略旁边的复选框（例如，**AWSCodeCommitPowerUser-MyDemoRepo**）。

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

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

1. 在组摘要页面上，选择**用户** 选项卡，然后选择**向组添加多个用户**。在显示与您的 Amazon Web Services 账户关联的所有用户的列表中，选中要允许其访问 CodeCommit 存储库的用户旁边的复选框，然后选择**添加用户**。
**提示**  
您可以使用搜索框快速地按名称查找用户。

1. 添加用户后，关闭 IAM 控制台。

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

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在区域选择器中，选择存储库的创建 AWS 区域 位置。存储库特定于 AWS 区域。有关更多信息，请参阅 [区域和 Git 连接端点](regions.md)。

1. 在 **Repositories (存储库)** 页面上，选择要共享的存储库。

1. 在**克隆 URL** 中，选择您希望用户使用的协议。这会复制连接协议的克隆 URL。

1. 向您的用户发送克隆 URL 以及任何其他说明，例如安装 AWS CLI、配置配置文件或安装 Git。请确保包含连接协议（例如 HTTPS）的配置信息。