什么是 AWS CodeCommit? - AWS CodeCommit

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

什么是 AWS CodeCommit?

AWS CodeCommit是 Amazon Web Service 托管的版本控制服务,您可使用它在云中私密存储和管理资产(如文档、源代码和二进制文件)。有关 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 版概览 Git 连接终端节点

简介

CodeCommit 是一种用于托管私有 Git 存储库的安全、高度可扩展的托管源代码控制服务。CodeCommit 使您无需管理自己的源代码控制系统或担心其基础设施的扩展。您可以使用 CodeCommit 存储从代码到二进制文件的一切内容。它支持 Git 的标准功能,可与您现有的基于 Git 的工具无缝协作。

使用 CodeCommit,您可以:

  • 受益于 AWS 托管的完全托管服务。CodeCommit 可提供较高的服务可用性和持久性,并能消除管理自己的硬件和软件的开销。没有需要预置和扩展的硬件,也没有需要安装、配置和更新的服务器软件。

  • 安全地存储您的代码。CodeCommit 存储库在静止和传输时处于加密状态。

  • 协作处理代码。 CodeCommit 存储库支持拉取请求,使用户可以相互查看和评论各自的代码更改然后再将其合并到分支;并且支持通过通知功能自动向用户发送有关拉取请求和评论的电子邮件等。

  • 轻松扩展您的版本控制项目。CodeCommit 存储库可以扩展以满足您的开发需求。该服务能够处理具有大量文件或分支、大尺寸文件及冗长版本历史记录的存储库。

  • 随时随地存储。。CodeCommit 不限制您的存储库大小,也不限制可存储的文件类型。

  • 与其他 AWS 及第三方服务集成。CodeCommit 将您的存储库放置在靠近您托管在AWS云,它有助于提高您的开发周期的速度和频率。它与 IAM 集成,可与其他AWS服务,而且能与其他存储库并行使用。有关更多信息,请参阅 AWS CodeCommit 产品和服务集成

  • 轻松地从远程存储库迁移文件。您可以将任意 Git 存储库迁移到 CodeCommit。

  • 您可以使用自己熟悉的 Git 工具。。CodeCommit 支持 Git 命令及其自己的AWS CLI命令和 API。

CodeCommit,Git,并选择正确的AWS服务满足您的需求

CodeCommit 是一项基于 Git 的服务,非常适合大多数版本控制需求。未对文件大小、文件类型和存储库大小施加任何限制。但是,Git 有一些固有的限制,这些限制会对某些类型的操作的性能产生负面影响,特别是随着时间的推移。通过避免在 CodeCommit 存储库性能的潜在下降,可以避免 CodeCommit 存储库性能的使用案例中使用它,AWS服务更适合这项任务。您还可以为复杂的存储库优化 Git 性能。下面是一些使用案例,其中 Git(从而使用 CodeCommit)可能不是最适合您的解决方案,或者您可能需要采取额外步骤来优化 Git。

使用案例 描述 要考虑的其他服务
经常更改的大文件 Git 使用增量编码来存储各个文件版本之间的差异。例如,如果您更改文档中的几个单词,Git 将只存储这些已更改的单词。如果您的文件或对象的大小超过 5 MB,并且进行了许多更改,则 Git 可能需要重新构造一个很大的增量差异链。当这些文件随着时间的推移而增长时,这会在本地计算机和 CodeCommit 中消耗越来越多的计算资源。 要版本大文件,请考虑 Amazon Simple Storage Service (Amazon S3)。有关更多信息,请参阅 。使用版本控制中的Amazon Simple Storage Service 开发人员指南
数据库 随着时间的推移,Git 存储库会变得越来越大。由于版本控制将跟踪所有更改,因此,任何更改都将增大您的存储库。换句话说,在提交数据时,即使删除了提交中的数据,也会将数据添加到存储库中。随着时间的推移,需要处理和传输的数据会越来越多,Git 的速度将变慢。这对数据库使用案例尤其不利。Git 不是作为数据库设计的。 要创建和使用具有一致性能的数据库(而不管大小如何),请考虑 Amazon DynamoDB。有关更多信息,请参阅 。Amazon DynamoDB 入门指南
审核跟踪 通常,审核跟踪会保持很长一段时间,并且由系统进程以非常频繁的节奏连续生成。Git 旨在安全地存储由开发人员组在开发周期中生成的源代码。快速更改的存储库会不断存储以编程方式生成的系统更改,但性能会随着时间的推移而降低。 要存储审核跟踪,请考虑 Amazon Simple Storage Service (Amazon S3)。

要审核AWS活动,具体取决于您的使用案例,请考虑使用AWS CloudTrailAWS Config,或者Amazon CloudWatch

备份 Git 是为开发人员编写的版本源代码而设计的。您可以使用将提交推送到两个远程存储库(包括 CodeCommit 存储库)作为备份策略。但是,Git 并不是设计用来处理计算机文件系统、数据库转储或类似备份内容的备份。这样做可能会降低系统速度,增加克隆和推送存储库所需的时间。 有关如何备份到 AWS 云的信息,请参阅备份和还原
大量分支或引用 当 Git 客户端推送或提取存储库数据时,即使您只对单个分支感兴趣,远程服务器也必须发送所有分支和引用(如标签)。如果您有数千个分支和引用,这可能需要一些时间来处理和发送(打包协商)并导致明显缓慢的存储库响应。您拥有的分支和标签越多,此过程所需的时间就越长。我们建议使用 CodeCommit,但需删除不再需要的分支和标签。 要分析 CodeCommit 存储库中的引用数以确定可能不需要的引用,您可使用下列命令之一:
  • Linux、macOS 或 Unix 或 Windows 上的 Bash 仿真器:

    git ls-remote | wc -l
  • Powershell:

    git ls-remote | Measure-Object -line

CodeCommit 是如何运行的?

CodeCommit 是基于 Git 的存储库的用户的使用感受,即使是不熟悉此类存储库的用户,也会发现转换到 CodeCommit 的过程十分简单。CodeCommit 提供了一个控制台,您可以使用它轻松创建存储库并列出现有的存储库和分支。用户只需执行几个简单的步骤,就能找到存储库的相关信息、将其克隆到自己的计算机、创建可保存个人更改的本地存储库,然后将更改推送到 CodeCommit 存储库。用户可以在本地计算机上使用命令行或使用基于 GUI 的编辑器执行作业。

下图显示了您如何使用自己的开发计算机、AWS CLI或 CodeCommit 控制台,以及 CodeCommit 服务来创建和管理存储库:


        典型的 CodeCommit 工作流程

  1. 使用AWS CLI或 CodeCommit 控制台来创建 CodeCommit 存储库。

  2. 在您的开发计算机上,使用 Git 运行git clone,指定 CodeCommit 存储库的名称。这将创建一个连接到 CodeCommit 存储库的本地回购。

  3. 在您的开发计算机上使用本地存储库修改(添加、编辑和删除)文件,然后运行git add在本地存放修改后的文件。运行git commit在本地提交文件,然后运行git push将文件发送到 CodeCommit 存储库。

  4. 下载其他用户的更改。运行git pull将 CodeCommit 存储库中的文件与本地仓库同步。这可确保您使用最新版本的文件。

您可以使用AWS CLI或 CodeCommit 控制台跟踪和管理自己的存储库。

CodeCommit 与 Amazon S3 中的文件版本控制有何不同?

CodeCommit 针对团队软件开发进行了优化。它能够管理多个文件的更改批次 (这可能与其他开发人员所做的更改同时发生)。Amazon S3 版本控制支持恢复以往版本的文件,但它不侧重于软件开发团队需要的协作文件跟踪功能。

怎样入门使用 CodeCommit?

要开始使用 CodeCommit:

  1. 按照设置 中的步骤准备您的开发计算机。

  2. 按照入门中的一个或多个教程中的步骤操作。

  3. Create版本控制项目中的 CodeCommit 或migrate版本控制项目添加到 CodeCommit。

我在哪里可以了解有关 Git 的更多信息?

如果您还不知道它,应该先了解如何使用 Git。下面是一些有用的资源:

  • Pro Git - Pro Git 图书的在线版本。作者是 Scott Chacon。由 Apress 出版。

  • Git Immersion - 一个以实验为本的探索之旅,旨在指导您掌握使用 Git 的基础知识。由 Neo Innovation, Inc. 发布。

  • Git 参考 - 一个在线快速参考,也可用作更深入的 Git 教程。由 GitHub 团队发布。

  • Git 备忘单 - 包含基本 Git 命令的语法。由 GitHub 团队发布。

  • Git 袖珍指南。作者是 Richard E. Silverman。由 O'Reilly Media, Inc. 发布。