1. 简介
- AWS CodeCommit 是由 Amazon Web Services 托管的版本控制服务,可让您在云中私下存储和管理资产(如文档、源代码和二进制文件)。
- 它支持 Git 的标准功能,可与您现有的基于 Git 的工具无缝协作。
- 定价
2. CodeCommit 是如何工作的?
3. 开始使用 CodeCommit
开始使用 CodeCommit
- 按照 设置 中的步骤准备您的开发计算机。
- 按照 入门 中的一个或多个教程中的步骤操作。
- 在 CodeCommit 中创建版本控制项目或者将版本控制项目迁移到 CodeCommit。
3.1 对 AWS CodeCommit 进行设置
通过本地计算机来使用 CodeCommit 存储库,需要设置安全凭证。设置 CodeCommit 的最简单方法是为 AWS CodeCommit 配置 HTTPS Git 凭证。
该 HTTPS 身份验证方法:
- 使用静态用户名和密码。
- 适用于 CodeCommit 支持的所有操作系统。
- 兼容支持 Git 凭证的集成开发环境 (IDE) 及其他开发工具。
3.1.1 查看和管理您的凭证
- 在右上角的导航栏中,选择您的用户名,然后选择 My Security Credentials (我的安全凭证)。
- 选择 AWS CodeCommit 凭证选项卡。
3.1.2 使用 Git 凭证设置
利用 HTTPS 连接和 Git 凭证,您可以在 IAM 中生成静态用户名和密码。然后,您可以在 Git 和支持 Git 用户名及密码身份验证的任何第三方工具中使用这些凭证。此方法得到大多数 IDEs 和开发工具。它是配合 CodeCommit 使用时最简单、最轻松的连接方法。
- 对于使用 Git 凭证的 HTTPS 用户:按照以下说明使用 Git 凭证设置本地计算机与 CodeCommit 存储库之间的连接。
- 用于开发工具的连接:按照以下准则使用 Git 凭证设置 IDE 或其他开发工具与 CodeCommit 存储库之间的连接。IDEs 支持 Git 凭证的包括 (但不限于) VisualStudio、Eclipse、Xcode和 IntelliJ。
3.2 迁移到 AWS CodeCommit
您可以通过多种方法将 Git 存储库迁移到 CodeCommit 存储库:克隆、镜像、迁移所有或部分分支等。您也可以将计算机上的本地、非版本控制内容迁移到 CodeCommit。
3.2.1 将 Git 存储库迁移到 AWS CodeCommit
您可以将现有的 Git 存储库迁移到 CodeCommit 存储库。本主题中的过程将演示如何将托管在另一个 Git 存储库上的项目迁移到 CodeCommit。在该过程中,您将:
- 完成 CodeCommit 所需的初始设置。
- 创建 CodeCommit 存储库。
- 克隆存储库并将其推送到 CodeCommit。
- 查看 CodeCommit 存储库中的文件。
- 与您的团队共享 CodeCommit 存储库。
第1步: 创建 CodeCommit 存储库
创建后,存储库将显示在存储库列表中。在 URL 列中,选择复制图标,然后选择用于连接到 CodeCommit 的协议(SSH 或 HTTPS)。复制 URL。
$ git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/MyClonedRepository
第2步: 克隆存储库并推送到 CodeCommit 存储库
使用
git clone
命令与--mirror
选项,将远程存储库(https://github.com/awslabs/aws-demo-php-simple-app.git)的裸副本克隆到名为的新文件夹中 aws-codecommit-demo。这是一个裸存储库,仅用于迁移。$ git clone --mirror https://github.com/awslabs/aws-demo-php-simple-app.git aws-codecommit-demo
切换到您执行克隆操作的目录。
cd aws-codecommit-demo
运行 git push 命令,指定目标 CodeCommit 存储库的 URL 和名称以及 —all 选项。
打开 IAM 控制台。
- 在 Dashboard 导航区域中选择 Policies,然后选择 Create Policy。
- 在 创建策略 页面,选择 导入托管策略.
- 在 导入托管策略 页面,在 过滤策略,输入
AWSCodeCommitPowerUser
。选择策略名称旁边的按钮,然后选择 导入. 在创建策略页面上,选择 JSON。替换的“*”部分
Resource
行 CodeCommit 使用Amazon资源名称(ARN) CodeCommit 存储库,如此处所示:"Resource": [
"arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo"
]
若要将该策略应用到多个存储库,请通过指定其 ARN 将各个存储库添加为资源。在每个资源语句之间加上逗号,如下所示:
"Resource": [
"arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo",
"arn:aws:codecommit:us-east-2:111111111111:MyOtherDemoRepo"
]
完成编辑后,请选择 审查政策.
在 审查政策 页面,在 名称,输入策略的新名称(例如:
AWSCodeCommitPowerUser-MyDemoRepo
)。- 选择创建策略。
要管理对您的存储库的访问,请为其用户创建一个 IAM 组、向该组添加 IAM 用户,然后附加在上一步中创建的客户托管策略。附加访问所需的任何其他策略,例如 IAMUserSSHKeys 或 IAMSelfManageServiceSpecificCredentials。
- 打开 IAM 控制台。
- 在 Dashboard 导航区域中选择 Groups,然后选择 Create New Group。
- 在 设置组名称 页面,在 组名称,输入组的名称(例如:
MyDemoRepoGroup
),然后选择 下一步. 请考虑在组名称中包含存储库名称。 - 选中您在前一部分中创建的客户托管策略旁边的复选框(例如,AWSCodeCommitPowerUser-MyDemoRepo)。
- 在审核页面上,选择创建组。IAM 将创建此组并且已附加指定策略。此组会显示在与您的 AWS 账户关联的组列表中。
- 从列表中选择您的组。
- 在组摘要页面上,选择用户 选项卡,然后选择向组添加多个用户。在显示与您的 AWS 账户关联的所有用户的列表中,选中要允许其访问 CodeCommit 存储库的用户旁边的复选框,然后选择添加用户。
- 添加用户后,关闭 IAM 控制台。
3.2.2 将内容迁移到 CodeCommit
本主题中的过程演示如何将计算机上的现有项目或本地内容迁移到 CodeCommit 存储库。
- 在本地计算机上的终端或命令行中,进入要用作存储库源的目录。
运行 git init 命令在该目录中初始化 Git 版本控制。这会在启用版本控制跟踪的目录的根目录中创建一个 .git 子目录。.git 文件夹还包含存储库的所有必需元数据。
git init
添加要置于版本控制之下的文件。在本教程中,将运行带
.
说明符的git add
命令来添加该目录中的所有文件。git add .
为添加的文件创建一个带有提交消息的提交。
git commit –m "Initial commit"
运行 git push 命令,指定目标 CodeCommit 存储库的 URL 和名称以及
--all
选项。git push https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyFirstRepo --all
3.2.3 增量迁移存储库
步骤0: 确定是否逐步迁移
如果您满足以下一个或多个条件,则可能需要配置增量推送:
- 您要迁移的存储库具有五年以上的历史。
- 您的 Internet 连接存在间歇性中断、丢包、响应缓慢或其他服务中断问题。
- 存储库的整体大小大于 2 GB,并且您打算迁移整个存储库。
- 存储库包含压缩率不高的大型项目或二进制文件,例如具有超过五个跟踪版本的大型映像文件。
- 您以前尝试过迁移到 CodeCommit,但收到“内部服务错误”消息。
后续步骤
具体步骤参考官方文档:https://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/how-to-push-large-repositories.html