本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
什么是 AWS CodeCommit?
AWS CodeCommit是一项 Amazon Web Services 托管的版本控制服务,可让您在云中私下存储和管理资产(例如文档、源代码和二进制文件)。有关 CodeCommit 定价的信息,请参阅定价
注意
CodeCommit 适用于许多合规性计划。有关 AWS 和合规性工作的详细信息,请参阅 AWS 按合规性计划提供的范围内服务
这是一项符合 HIPAA 要求的服务。有关AWS、《1996 年健康保险可携性与责任法》(HIPAA) 以及使用AWS服务处理、存储和传输受保护的医疗信息 (PHI) 的更多信息,请参阅 HIPAA 概述
有关此服务和指定安全管理最佳实践的安全管理标准 ISO 27001 的信息,请参阅 ISO 27001 概述
有关此服务和支付卡行业数据安全标准 (PCI DSS) 的信息,请参阅 PCI DSS 概述
有关此服务和美国联邦信息处理标准 (FIPS) 第 140-2 版美国政府标准(其中规定了对保护敏感信息的加密模块的安全要求)的信息,请参阅美国联邦信息处理标准 (FIPS) 第 140-2 版概览
主题
CodeCommit 简介
CodeCommit 是一种用于托管私有 Git 存储库的安全、高度可扩展的托管源代码控制服务。借助 CodeCommit,您无需管理自己的源代码控制系统或担心其基础设施的扩展。您可以使用 CodeCommit 存储从代码到二进制文件的一切内容。它支持 Git 的标准功能,可与您现有的基于 Git 的工具无缝协作。
通过使用 CodeCommit,您可以:
-
受益于 AWS 托管的完全托管服务。CodeCommit 可提供很高的服务可用性和持久性,并能消除管理自己的硬件和软件的开销。没有需要预置和扩展的硬件,也没有需要安装、配置和更新的服务器软件。
-
安全地存储您的代码。CodeCommit 存储库在静止和传输时处于加密状态。
-
协作编写代码。CodeCommit存储库支持拉取请求,用户可以在将对方的代码更改合并到分支之前对其进行查看和评论;自动向用户发送有关拉取请求和评论的电子邮件的通知等。
-
轻松扩展您的版本控制项目。CodeCommit 存储库可以扩展以满足您的开发需求。该服务能够处理具有大量文件或分支、大尺寸文件及冗长版本历史记录的存储库。
-
随时存储任何东西。CodeCommit 不限制您的存储库大小,也不限制可存储的文件类型。
-
与其他 AWS 及第三方服务集成。CodeCommit 将您的存储库放置在靠近您托管在 AWS 云中的其他生产资源的位置,这有助于提高您的开发周期的速度和频率。它与 IAM 集成,可以与其他AWS服务一起使用,也可以与其他存储库parallel 使用。有关更多信息,请参阅AWS CodeCommit 产品和服务集成:
-
轻松地从远程存储库迁移文件。您可以将任意 Git 存储库迁移到 CodeCommit。
-
使用你已经知道的 Git 工具。CodeCommit 支持 Git 命令及其自己的 AWS CLI 命令和 API。
CodeCommit、Git,并根据您的需求选择合适的AWS服务
作为一项基于 Git 的服务,CodeCommit 非常适合大多数版本控制需求。未对文件大小、文件类型和存储库大小施加任何限制。但是,Git 有一些固有的限制,这些限制会对某些类型的操作的性能产生负面影响,特别是随着时间的推移。通过避免在其他 AWS 服务更适合于任务的使用案例中使用它,可以避免 CodeCommit 存储库性能的潜在下降。您还可以为复杂的存储库优化 Git 性能。以下是一些使用案例,其中 Git(进而是 CodeCommit)可能不是最适合您的解决方案,或者您可能需要采取额外步骤来优化 Git。
使用案例 | 描述 | 要考虑的其他服务 |
---|---|---|
经常更改的大文件 | Git 使用增量编码来存储各个文件版本之间的差异。例如,如果您更改文档中的几个单词,Git 将只存储这些已更改的单词。如果您的文件或对象的大小超过 5 MB,并且进行了许多更改,则 Git 可能需要重新构造一个很大的增量差异链。当这些文件随着时间的推移而增长时,这会在本地计算机和 CodeCommit 中消耗越来越多的计算资源。 | 要对大型文件进行版本控制,请考虑Amazon SimpSimple Storage Service (Amazon S3) 有关更多信息,请参阅 Amazon Simple Storage Service 用户指南中的使用版本控制。 |
数据库 | 随着时间的推移,Git 存储库会变得越来越大。由于版本控制将跟踪所有更改,因此,任何更改都将增大您的存储库。换句话说,在提交数据时,即使删除了提交中的数据,也会将数据添加到存储库中。随着时间的推移,需要处理和传输的数据会越来越多,Git 的速度将变慢。这对数据库使用案例尤其不利。Git 不是作为数据库设计的。 | 要创建和使用无论大小都具有一致性能的数据库,可以考虑 Amazon DynamoDB。有关更多信息,请参阅 Amazon DynamoDB e 入门。 |
审核跟踪 | 通常,审核跟踪会保持很长一段时间,并且由系统进程以非常频繁的节奏连续生成。Git 旨在安全地存储由开发人员组在开发周期中生成的源代码。快速更改的存储库会不断存储以编程方式生成的系统更改,但性能会随着时间的推移而降低。 | 要存储审计记录,请考虑Amazon SimpSimple Storage Service (Amazon S3) 要根据您的用例对AWS活动进行审计,可以考虑使用AWS CloudTrailAWS Config |
备份 | Git 是为开发人员编写的版本源代码而设计的。您可以将提交推送到两个远程存储库(包括一个 CodeCommit 存储库)作为备份策略。但是,Git 并不是设计用来处理计算机文件系统、数据库转储或类似备份内容的备份。这样做可能会降低系统速度,增加克隆和推送存储库所需的时间。 | 有关如何备份到 AWS 云的信息,请参阅备份和还原 |
大量分支或引用 | 当 Git 客户端推送或提取存储库数据时,即使您只对单个分支感兴趣,远程服务器也必须发送所有分支和引用(如标签)。如果您有数千个分支和引用,这可能需要一些时间来处理和发送(打包协商)并导致明显缓慢的存储库响应。您拥有的分支和标签越多,此过程所需的时间就越长。我们建议使用 CodeCommit,但需删除不再需要的分支和标签。 | 要分析 CodeCommit 存储库中的引用数以确定可能不需要的引用,您可使用下列命令之一:
|
CodeCommit 是如何运行的?
CodeCommit基于 Git 的存储库的用户很熟悉,但即使是那些不熟悉的用户也应该觉得过渡到CodeCommit相对简单。CodeCommit 提供了一个控制台,您可以使用它轻松创建存储库并列出现有的存储库和分支。用户只需执行几个简单的步骤,就能找到存储库的相关信息、将其克隆到自己的计算机、创建可保存个人更改的本地存储库,然后将更改推送到 CodeCommit 存储库。用户可以在本地计算机上使用命令行或使用基于 GUI 的编辑器执行作业。
下图显示了使用开发计算机、AWS CLI 或 CodeCommit 控制台和 CodeCommit 服务创建和管理存储库的过程:

-
使用AWS CLI或CodeCommit控制台创建CodeCommit存储库。
-
在开发计算机上,使用 Git 运行 git clone 并指定 CodeCommit 存储库的名称。这将创建一个连接到存储库的本地CodeCommit存储库。
-
使用开发计算机上的本地存储库修改(添加、编辑和删除)文件,然后运行git add以在本地暂存修改后的文件。运行git commit以在本地提交文件,然后运行将文件发送git push到CodeCommit存储库。
-
下载其他用户的更改。运行git pull以将CodeCommit存储库中的文件与本地存储库同步。这可确保您使用最新版本的文件。
您可以使用 AWS CLI 或 CodeCommit 控制台跟踪和管理自己的存储库。
与 Amazon S3 中的文件版本控制有何CodeCommit不同?
CodeCommit 已针对团队软件开发进行优化。它管理多个文件的批量更改,这些更改可以与其他开发人员所做的更改parallel 发生。Amazon S3 版本控制支持恢复文件以前的版本,但它并不侧重于软件开发团队所需的协作文件跟踪功能。
如何开始使用 CodeCommit?
开始使用 CodeCommit:
我在哪里可以了解有关 Git 的更多信息?
如果您还不知道它,应该先了解如何使用 Git。下面是一些有用的资源: