

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

# 开始使用
<a name="getting-started-topnode"></a>

最简单的入门方法 CodeCommit 是按照中的步骤进行操作[入门 CodeCommit ](getting-started-cc.md)。如果您不熟悉 Git CodeCommit，还应考虑按照中的步骤操作[Git 入门和 CodeCommit](getting-started.md)。这可以帮助您在与仓库交互时熟悉 Git CodeCommit 以及使用 Git 的基础知识。 CodeCommit 

您也可以按照[简单管道演练中的教程进行操作 CodeCommit， CodePipeline 并](https://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-cc.html)学习如何将存储 CodeCommit库用作持续交付管道的一部分。

本部分中的教程假定您已完成[先决条件和设置](setting-up.md)，包括：
+ 向 IAM 用户分配权限。
+ 在您用于本教程的本地计算机上为 HTTPS 或 SSH 连接设置凭证管理。
+  AWS CLI 如果要使用命令行或终端执行所有操作（包括创建存储库），请配置。

**Topics**
+ [入门 AWS CodeCommit](getting-started-cc.md)
+ [Git 入门和 AWS CodeCommit](getting-started.md)

# 入门 AWS CodeCommit
<a name="getting-started-cc"></a>

本教程向您展示如何使用一些关键 CodeCommit 功能。首先，请创建一个存储库并提交一些对它的更改。然后，浏览文件并查看更改。您还可以创建拉取请求，以便其他用户可以审核并注释代码的更改。

如果要将现有代码迁移到 CodeCommit，请参阅[迁移到 AWS CodeCommit](how-to-migrate-repository.md)。

如果您不熟悉 Git，也可以考虑完成 [Git 入门和 CodeCommit](getting-started.md)。完成这些教程后，你应该有足够的练习来开始在自己的项目和团队环境中使用 CodeCommit 。

 CodeCommit 控制台在可折叠面板中包含有用的信息，您可以通过页面上的信息图标 (![\[The information icon that opens and closes the help panel on a page.\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-info-icon.png)) 或任何 “**信息**” 链接打开该面板。您可以随时关闭此面板。

![\[在控制台中查看其他指导\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-guidance-open.png)


 CodeCommit 控制台还提供了一种快速搜索资源的方法，例如存储库、生成项目、部署应用程序和管道。选择**转到资源**或按下 `/` 键，然后键入资源的名称。任何匹配结果都会显示在列表中。搜索不区分大小写。您只能看到您有权查看的资源。有关更多信息，请参阅 [在控制台中查看资源](auth-and-access-control-iam-identity-based-access-control.md#console-resources)。

## 先决条件
<a name="getting-started-cc-prereqs"></a>

在开始之前，必须完成[先决条件和设置](setting-up.md)过程，包括：
+ 向 IAM 用户分配权限。
+ 在您用来完成本教程的本地计算机上为 HTTPS 或 SSH 连接设置凭证管理。
+  AWS CLI 如果要使用命令行或终端执行所有操作（包括创建存储库），请配置。

**Topics**
+ [先决条件](#getting-started-cc-prereqs)
+ [步骤 1：创建 CodeCommit 存储库](#getting-started-cc-create-repo)
+ [步骤 2：向您的存储库添加文件](#getting-started-cc-add)
+ [步骤 3：浏览存储库的内容](#getting-started-cc-browse)
+ [步骤 4：在拉取请求中进行创建和协作](#getting-started-cc-pullrequest)
+ [第 5 步：清理](#getting-started-cc-clean-up)
+ [步骤 6：后续步骤](#getting-started-cc-next)

## 步骤 1：创建 CodeCommit 存储库
<a name="getting-started-cc-create-repo"></a>

您可以使用 CodeCommit 控制台创建 CodeCommit 存储库。如果您已有可用于本教程的存储库，可以跳过该步骤。

**注意**  
根据您的使用情况，您可能需要为创建或访问存储库付费。有关更多信息，请参阅 CodeCommit 产品信息页面上的[定价](https://aws.amazon.com/codecommit/pricing)。

**创建 CodeCommit 存储库**

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. 在**创建存储库**页面上的**存储库名称**中，输入存储库的名称（例如，**MyDemoRepo**）。
**注意**  
存储库名称区分大小写，且不能超过 100 个字符。有关更多信息，请参阅[限制](limits.md#limits-repository-names)。

1. （可选）在**描述**中，输入描述（例如，**My demonstration repository**）。这可以帮助您及其他用户了解存储库的用途。

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 使用多个机器学习模型来查找代码缺陷，并自动在拉取请求中提出改进和修复建议。有关更多信息，请参阅 Amazon CodeGuru Reviewer 用户指南。

1. 选择**创建**。

![\[从控制台创建存储库\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-create-repository.png)


**注意**  
如果存储库使用了 `MyDemoRepo` 以外的名称，请务必在剩余步骤中使用该名称。

当存储库打开时，您将看到有关如何直接从 CodeCommit 控制台添加文件的信息。

## 步骤 2：向您的存储库添加文件
<a name="getting-started-cc-add"></a>

可以通过以下方法向您的存储库添加文件：
+ 在 CodeCommit 控制台中创建文件。如果您在控制台中为存储库创建第一个文件，则系统会为您创建一个名为 *main* 的分支。此分支是存储库的默认分支。
+ 使用 CodeCommit 控制台从本地计算机上传文件。如果您从控制台为存储库上传第一个文件，则系统会为您创建一个名为 *main* 的分支。此分支是存储库的默认分支。
+ 使用 Git 客户端将仓库克隆到本地计算机，然后向仓 CodeCommit 库添加、提交和推送文件。在 Git 中执行第一个提交时，系统会为您创建一个分支，并且会将其设置为存储库的默认分支。分支的名称是 Git 客户端的默认选项。请考虑将 Git 客户端配置为使用 *main* 作为初始分支的名称。

**注意**  
您可以随时创建分支并更改存储库的默认分支。有关更多信息，请参阅 [使用 AWS CodeCommit 存储库中的分支](branches.md)。

最简单的入门方法是打开 CodeCommit 控制台并添加文件。这样，您还可以为存储库创建一个名为 *main* 的默认分支。有关如何使用向存储库添加文件和创建首次提交的说明 AWS CLI，请参阅使用[创建存储库的第一个提交 AWS CLI](how-to-create-commit.md#create-first-commit)。

**向存储库添加文件**

1. 在存储库的导航栏中，选择**代码**。

1. 选择**添加文件**，然后选择是创建文件还是从您的计算机上传文件。本教程向您展示了如何执行这两个操作。

1. 要添加文件，请执行以下操作：

   1. 在分支下拉列表中，选择要添加文件的分支。已为您自动选择默认分支。在此处显示的示例中，默认分支名为*main*。如果要将文件添加到不同的分支，请选择不同的分支。

   1.  在**文件名**中，为文件输入名称。在代码编辑器中，输入文件的代码。

   1. 在**作者姓名**中，输入您希望显示给其他存储库用户的姓名。

   1. 在**电子邮件地址**中，输入电子邮件地址。

   1. （可选）在**提交消息**中，输入一条简短的消息。虽然这是可选的，但建议您添加提交消息以帮助您的团队成员了解您添加此文件的原因。如果您没有输入提交消息，将使用默认消息。

   1. 选择**提交更改**。

   要上传文件，请执行以下操作：
   + 如果正在上传文件，请选择要上传的文件。  
![\[在 CodeCommit 控制台中上传文件的视图\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-commit-first-file.png)
   + 在**作者姓名**中，输入您希望显示给其他存储库用户的姓名。
   + 在**电子邮件地址**中，输入电子邮件地址。
   + （可选）在**提交消息**中，输入一条简短的消息。虽然这是可选的，但建议您添加提交消息以帮助您的团队成员了解您添加此文件的原因。如果您没有输入提交消息，将使用默认消息。
   + 选择**提交更改**。

有关更多信息，请参阅 [使用 AWS CodeCommit 存储库中的文件](files.md)。

要使用 Git 客户端克隆仓库，请在本地计算机上安装 Git，然后克隆 CodeCommit 仓库。向本地存储库中添加一些文件，并将它们推送到 CodeCommit 存储库。有关深入介绍，请尝试 [Git 入门和 CodeCommit](getting-started.md)。如果您熟悉 Git，但不确定如何使用 CodeCommit 存储库执行此操作，则可以在[创建提交](how-to-create-commit.md)[步骤 2：创建本地存储库](getting-started.md#getting-started-set-up-folders)、或中查看示例和说明[连接存储库](how-to-connect.md)。

将一些文件添加到 CodeCommit 存储库后，可以在控制台中查看它们。

## 步骤 3：浏览存储库的内容
<a name="getting-started-cc-browse"></a>

您可以使用 CodeCommit 控制台查看存储库中的文件或快速读取文件的内容。这可以帮助您确定要签出的分支或者确定是否需要创建存储库的本地副本。

**浏览存储库**

1. 从 “**存储库**” 中选择 MyDemoRepo。

1. 页面显示了存储库的默认分支中的内容。要查看其他分支或查看特定标签处的代码，请从列表中选择要查看的分支或标签。在下面的屏幕截图中，视图设置为 **main** 分支。  
![\[浏览存储库的内容\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-code-browse.png)

1. 要查看存储库中某个文件的内容，请从列表中选择该文件。要更改所显示代码的颜色，请选择设置图标。  
![\[查看文件的内容\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-code-browse-file.png)

   有关更多信息，请参阅 [浏览存储库中的文件](how-to-browse.md)。

1. 要浏览存储库的提交历史记录，请选择**提交**。控制台按时间倒序显示默认分支的提交历史记录。可以按作者、日期等查看提交详细信息。  
![\[控制台中的提交历史记录视图\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-code-history.png)

1. 要按[分支](branches.md)或 [Git 标签](how-to-view-tag-details.md)查看提交历史记录，请从列表中选择要查看的分支或标签。

1. 要查看提交与其父项之间的差异，请选择缩写的提交 ID。您可以选择更改的显示方式，包括显示或隐藏空格更改，以及是以内联方式（**统一**视图）还是并排方式（**拆分**视图）查看更改。
**注意**  
每当您更改用于查看代码和其他控制台设置的首选项时，都会将它们保存为浏览器 Cookie。有关更多信息，请参阅 [使用用户首选项](user-preferences.md)。  
![\[在统一视图中显示的更改，空格更改可见\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-commit-changes2c.png)

1. 要查看对提交的所有评论，请选择提交，然后滚动显示更改以便通过内联方式查看更改。您还可以添加自己的评论并回复他人发表的评论。

   有关更多信息，请参阅 [评论提交](how-to-commit-comment.md)。

1. 要查看任意两个提交说明符（包括标签、分支和提交）之间的差异，请在导航窗格中选择 “**提交**”，然后选择 “**比较提交**”。 IDs  
![\[将提交与拆分视图中的分支的提示相比较\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-compare-4.png)

   有关更多信息，请参阅[浏览存储库的提交历史记录](how-to-view-commit-details.md#how-to-view-commit-details-console-history)和[比较提交](how-to-compare-commits.md)。

1. 在**提交**中，选择**提交可视化工具**选项卡。  
![\[控制台中的存储库图形视图\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-cv-complex1.png)

   此时会显示提交图，图中每个提交点的旁边显示其主题行。主题行显示限制为 80 个字符。

1. 要查看有关提交的更多详细信息，请选择其缩写的提交 ID。要呈现特定提交的图表，请在图表中选择该点。有关更多信息，请参阅 [查看存储库的提交历史记录图表](how-to-view-commit-details.md#how-to-view-commit-details-console-visualizer)。

## 步骤 4：在拉取请求中进行创建和协作
<a name="getting-started-cc-pullrequest"></a>

当您与其他用户在存储库中一起工作时，您可以协作编写代码并审核更改。您可以创建拉取请求，以便其他用户可以在分支中审核并注释您的代码更改。您还可以为拉取请求创建一个或多个审批规则。例如，您可以创建一个审批规则，要求在拉取请求合并之前，至少由另外两名用户对其进行审批。拉取请求经审批后，您可以将这些更改合并到其目标分支中。如果您为存储库设置了通知，则存储库用户可以收到有关存储库事件的电子邮件（例如，针对拉取请求，或在有人对代码评论时）。有关更多信息，请参阅 [为 AWS CodeCommit 存储库中的事件配置通知](how-to-repository-email.md)。

**重要**  
在创建拉取请求之前，必须先创建一个分支，其中包含要查看的代码更改。有关更多信息，请参阅 [创建分支](how-to-create-branch.md)。

**在拉取请求中进行创建和协作**

1. 在导航窗格中，选择**拉取请求**。

1. 在**拉取请求**中，选择**创建拉取请求**。
**提示**  
您也可以从**分支**和**代码**创建拉取请求。

   在 **Create pull request** 中，在 **Source** 中选择包含要审核的更改的分支。在 **Destination (目标)** 中，选择要在拉取请求关闭后将已审核的代码合并到的分支。选择 **Compare**。

1. 审核合并详细信息和更改，以确认拉取请求包含要审核的更改和提交。如果是这样，请在**标题**中输入此审核的标题。此标题显示在存储库的拉取请求列表中。在**描述**中，输入有关此审核的详细信息及对审核者有用的任何其他信息。选择**创建**。  
![\[创建拉取请求\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-pull-request-create.png)

1. 拉取请求将显示在存储库的拉取请求列表中。您可以筛选视图，使其只显示打开的请求、关闭的请求、您创建的请求等。  
![\[查看存储库中的拉取请求\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. 您可以向拉取请求添加审批规则，以确保该请求在合并之前满足某些条件。要向拉取请求添加审批规则，请从列表中选择拉取请求。在 **Approvals (审批)** 选项卡上，选择 **Create approval rule (创建审批规则)**。

1. 在 **Rule name (规则名称)** 中，为规则指定一个描述性名称。例如，如果您希望拉取请求在合并之前，必须由两人对其进行审批，那么可以将该规则命名为 **Require two approvals before merge**。在 **Number of approvals needed (需要的审批数量)** 中，输入所需的数量 **2**。默认 为 1。选择**提交**。要了解有关审批规则和审批池成员的更多信息，请参阅[为拉取请求创建审批规则](how-to-create-pull-request-approval-rule.md)。  
![\[为拉取请求创建审批规则\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-create-approval-rule.png)

1. 如果已为存储库配置通知并选择向用户通知拉取请求事件，用户会收到有关新拉取请求的电子邮件。用户可以查看针对特定代码行、文件和拉取请求自身的更改和评论。他们还可以使用文字和表情符号回复评论。如有必要，可以将更改推送到拉取请求分支，此操作会更新拉取请求。  
![\[对拉取请求的评论添加表情符号反应。\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-commenting-commenttab.png)

1. 如果您对请求中所做的更改感到满意，请选择 **Approve (批准)**。即使该拉取请求未配置审批规则，您也可以选择批准拉取请求。这样可清楚地记录您已审核拉取请求并批准更改。如果您改变主意，还可以选择撤销批准。  
![\[查看拉取请求的审批\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-pull-request-approvals.png)
**注意**  
如果拉取请求由您创建，那么您无法批准该请求。

1. 当您对在拉取请求中审核并同意的所有代码更改感到满意后，执行以下操作之一：
   + 如果要关闭拉取请求而不合并分支，请选择 **Close pull request (关闭拉取请求)**。
   + 如果要合并分支并关闭拉取请求，请选择 **Merge (合并)**。您可以在代码的可用合并策略之间进行选择，这些策略取决于源和目标分支之间的差异，以及在合并完成后是否自动删除源分支。在进行选择后，请选择 **Merge pull request (合并拉取请求)** 以完成合并。  
![\[一个拉取请求，显示 CodeCommit 控制台中可用于合并的合并策略。\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-merge-squash.png)
   + 如果分支中存在无法自动解决的合并冲突，则可以在 CodeCommit 控制台中解决这些冲突，也可以使用本地 Git 客户端合并分支，然后推送合并。有关更多信息，请参阅 [解决 AWS CodeCommit 存储库中的拉取请求中的冲突](how-to-resolve-conflict-pull-request.md)。
**注意**  
您始终可以在本地存储库中使用 **git merge** 命令并推送更改以手动合并分支，包括拉取请求分支。

有关更多信息，请参阅[使用拉取请求](pull-requests.md)和[使用审批规则模板](approval-rule-templates.md)。

## 第 5 步：清理
<a name="getting-started-cc-clean-up"></a>

如果您不再需要 CodeCommit 存储库，则应删除您在本练习中使用的 CodeCommit 存储库和其他资源，这样就不会继续向您收取存储空间费用。

**重要**  
并且无法撤消。删除该存储库后，您就无法再将其克隆到任何本地存储库或共享存储库，也无法再从任何本地存储库或共享存储库向其推送数据、从其拉取数据或执行任何 Git 操作。  
如果您为存储库配置了通知，则删除存储库也会删除为存储库创建的 Amazon CloudWatch Events 规则。但不会删除用作该规则目标的 Amazon SNS 主题。  
如果为存储库配置了触发器，则删除存储库不会删除您配置为这些触发器目标的 Amazon SNS 主题或 Lambda 函数。如果不需要这些资源，请务必将其删除。有关更多信息，请参阅 [从存储库中删除触发器](how-to-notify-delete.md)。

**删除 CodeCommit 存储库**

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

1. 在**存储库**中，选择要删除的存储库。如果您遵循了本主题中的命名约定，它将命名为 **MyDemoRepo**。

1. 在导航窗格中，选择**设置**。

1. 在 **Settings** 页面上的 **Delete repository** 中，选择 **Delete repository**。

1. 键入 **delete**，然后选择**删除**。存储库将被永久删除。

## 步骤 6：后续步骤
<a name="getting-started-cc-next"></a>

既然您已经熟悉了它 CodeCommit 及其一些功能，可以考虑执行以下操作：
+ 如果您不熟悉 Git， CodeCommit 或者想查看使用 Git 的示例 CodeCommit，请继续阅读本[Git 入门和 CodeCommit](getting-started.md)教程。
+ 如果您想与 CodeCommit 仓库中的其他人合作，请参阅[共享存储库](how-to-share-repository.md)。（如果您需要与其他 Amazon Web Services 账户中的用户共享您的存储库，请参阅[使用角色配置对 AWS CodeCommit 仓库的跨账户访问权限](cross-account.md)。）
+ 如果要将存储库迁移到 CodeCommit，请按照中的步骤操作[迁移到 CodeCommit](how-to-migrate-repository.md)。
+ 如果需要将存储库添加到持续交付管道，请按照[简单管道演练](https://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-cc.html)中的步骤操作。
+ 如果需要了解有关与 CodeCommit 集成的产品和服务的更多信息，包括来自社区的示例，请参阅[产品和服务集成](integrations.md)。

# Git 入门和 AWS CodeCommit
<a name="getting-started"></a>

如果你是 Git 的新手 CodeCommit，本教程可以帮助你学习一些简单的命令来开始使用。如果您已熟悉 Git，可以跳过本教程并转到 [入门 CodeCommit ](getting-started-cc.md)。

在本教程中，您将创建一个表示存储库本地副本的 CodeCommit 存储库，我们称之为本地存储库。

创建本地存储库后，您将对其进行一些更改，然后将更改发送（推送）到 CodeCommit 存储库。

您还可以模拟一个团队环境，在该环境中，两个用户独立提交对本地存储库的更改，并将这些更改推送到 CodeCommit 存储库。然后，用户将更改从 CodeCommit 存储库拉到自己的本地存储库，以查看其他用户所做的更改。

您还可以创建分支和标签，并管理 CodeCommit 仓库中的某些访问权限。

完成本教程后，您应已完成有关 Git 和 CodeCommit 核心概念的充分练习，可以开始在自己的项目中使用它们了。

完成[前提条件和设置](setting-up.md)，包括：
+ 向 IAM 用户分配权限。
+ 设置 CodeCommit 为使用 [HTTPS](setting-up-gc.md)、SSH 或连接到存储库[**git-remote-codecommit**](setting-up-git-remote-codecommit.md)。有关这些选择的更多信息，请参阅 [Setting up for AWS CodeCommit](setting-up.md)。
+  AWS CLI 如果要使用命令行或终端执行所有操作，包括创建存储库，请配置。

**Topics**
+ [步骤 1：创建 CodeCommit 存储库](#getting-started-create-repo)
+ [步骤 2：创建本地存储库](#getting-started-set-up-folders)
+ [步骤 3：创建您的第一个提交](#getting-started-create-commit)
+ [步骤 4：推送您的第一个提交](#getting-started-init-repo)
+ [第 5 步：共享 CodeCommit 存储库并推送和拉取另一个提交](#getting-started-pull-commits)
+ [步骤 6：创建并共享分支](#getting-started-branching)
+ [步骤 7：创建并共享标签](#getting-started-tags)
+ [步骤 8：设置访问权限](#getting-started-permissions)
+ [步骤 9：清除](#getting-started-clean-up)

## 步骤 1：创建 CodeCommit 存储库
<a name="getting-started-create-repo"></a>

在此步骤中，您将使用 CodeCommit 控制台创建存储库。

如果您已经有想要使用的 CodeCommit 存储库，则可以跳过此步骤。

**注意**  
根据您的使用情况，您可能需要为创建或访问存储库付费。有关更多信息，请参阅 CodeCommit 产品信息页面上的[定价](https://aws.amazon.com/codecommit/pricing)。

**创建 CodeCommit 存储库**

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. 在**创建存储库**页面上的**存储库名称**中，输入存储库的名称（例如，**MyDemoRepo**）。
**注意**  
存储库名称区分大小写，且不能超过 100 个字符。有关更多信息，请参阅[限制](limits.md#limits-repository-names)。

1. （可选）在**描述**中，输入描述（例如，**My demonstration repository**）。这可以帮助您及其他用户了解存储库的用途。

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 使用多个机器学习模型来查找代码缺陷，并自动在拉取请求中提出改进和修复建议。有关更多信息，请参阅 Amazon CodeGuru Reviewer 用户指南。

1. 选择**创建**。

**注意**  
本教程的其余步骤使用`MyDemoRepo` CodeCommit 存储库的名称。如果您选择其他名称，请确保在本教程中通篇使用它。

有关创建存储库 (包括如何从终端或命令行创建存储库) 的更多信息，请参阅[创建 存储库](how-to-create-repository.md)。

## 步骤 2：创建本地存储库
<a name="getting-started-set-up-folders"></a>

在此步骤中，需要在本地计算机上设置一个本地存储库，以连接到您的存储库。为此，请在本地计算机上选择一个代表本地存储库的目录，您可以使用 Git 在该目录中克隆和初始化空 CodeCommit 仓库的副本。并指定用于为您的提交添加注释的 Git 用户名和电子邮件地址。

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. 从列表中找到您要连接的存储库并选择此存储库。选择 **Clone URL (克隆 URL)**，然后选择克隆或连接到存储库时要使用的协议。此时将复制克隆 URL。
   + 如果您使用的是 IAM 用户的 Git 凭证或 AWS CLI附带的凭证助手，请复制 HTTPS URL。
   + 如果您在本地计算机上使用 **git-remote-codecommit** 命令，请复制 HTTPS (GRC) URL。
   + 如果您与 IAM 用户一起使用 SSH public/private 密钥对，请复制 SSH 网址。
**注意**  
 如果您看到的是**欢迎**页面而不是存储库列表，则说明您登录的 AWS 区域 位置中没有与您的 AWS 账户关联的存储库。要创建存储库，请参阅[创建 AWS CodeCommit 存储库](how-to-create-repository.md)或按照[Git 入门和 CodeCommit](#getting-started)教程中的步骤进行操作。

1. （可选）我们建议您将本地 Git 客户端配置为使用 **main** 作为存储库默认分支的名称。本指南所有示例中的默认分支均使用此名称。它也与您在控制台中首次提交时 CodeCommit 使用的默认分支名称相同。运行以下命令为您的系统全局配置默认分支名称：

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

   如果您更喜欢为所有存储库使用不同的默认分支名称，请将 **main** 替换为您的首选名称。本教程假定您的默认分支名称为 *main*。

   如果您希望为不同的存储库使用不同的默认分支名称，则可以在本地 (**--local**) 设置此属性，而不是全局 (**--global**) 设置。

1. 在终端或命令提示符处，使用 **git clone** 命令并提供您在步骤 3 中复制的克隆 URL 来克隆存储库。您的克隆 URL 具体取决于您使用的协议和配置。例如，如果您使用带有 Git 凭据的 HTTPS 来克隆*MyDemoRepo*位于美国东部（俄亥俄州）地区的仓库：

   ```
   git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
   ```

   如果您将 HTTPS 与 **git-remote-codecommit** 结合使用：

   ```
   git clone codecommit://MyDemoRepo my-demo-repo
   ```

   如果您正在使用 SSH：

   ```
   git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
   ```
**注意**  
如果您在尝试克隆存储库时看到错误，则可能尚未完成本地计算机所需的设置。有关更多信息，请参阅 [Setting up for AWS CodeCommit](setting-up.md)。

## 步骤 3：创建您的第一个提交
<a name="getting-started-create-commit"></a>

在此步骤中，您将在本地存储库中创建第一个提交。为此，您需要在本地存储库中创建两个示例文件。使用 Git 暂存更改，然后将更改提交到您的本地存储库。

1. 使用文本编辑器在您的目录中创建以下两个示例文本文件。将这两个文件命名为 `cat.txt` 和 `dog.txt`：

   ```
   cat.txt
   -------
   The domestic cat (Felis catus or Felis silvestris catus) is a small, usually furry, domesticated, and carnivorous mammal.
   ```

   

   ```
   dog.txt
   -------
   The domestic dog (Canis lupus familiaris) is a canid that is known as man's best friend.
   ```

1. 运行**git config**以将占位符*your-user-name*表示的用户名和电子邮件地址*your-email-address*添加到您的本地存储库中。这样，就可以更轻松地标识您所做的提交：

   ```
   git config --local user.name "your-user-name"
   git config --local user.email your-email-address
   ```

1. 如果您在创建本地存储库时没有全局设置默认分支名称，请运行以下命令，将默认分支名称设置为 **main**：

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

1. 运行 **git add** 暂存更改：

   ```
   git add cat.txt dog.txt
   ```

1. 运行 **git commit** 提交更改：

   ```
   git commit -m "Added cat.txt and dog.txt"
   ```
**提示**  
要查看刚刚创建的提交的详细信息，请运行 **git log**。

## 步骤 4：推送您的第一个提交
<a name="getting-started-init-repo"></a>

在此步骤中，您将提交从本地存储库推送到存储 CodeCommit 库。

运行**git push**以通过 Git 在仓库中使用的默认远程名称 (`origin`)，从本地 CodeCommit 仓库的默认分支 (`main`) 推送你的提交：

```
git push -u origin main
```

**提示**  
将文件推送到存储 CodeCommit 库后，您可以使用 CodeCommit 控制台查看内容。有关更多信息，请参阅 [浏览存储库中的文件](how-to-browse.md)。

## 第 5 步：共享 CodeCommit 存储库并推送和拉取另一个提交
<a name="getting-started-pull-commits"></a>

在此步骤中，您将与其他团队成员共享有关 CodeCommit 仓库的信息。团队成员使用这些信息获取本地副本，对其进行一些更改，然后将修改后的本地副本推送到您的 CodeCommit 存储库。然后，您将更改从 CodeCommit 存储库提取到本地存储库。

在本教程中，您可以通过使用 Git 另外创建一个目录 (独立于您在[步骤 2](#getting-started-set-up-folders) 中创建的目录) 来模拟其他用户。（该目录通常位于其他计算机上。） 这个新目录是您的 CodeCommit 存储库的副本。您对现有目录或该新目录所做的任何更改都是独立进行的。识别这些目录的更改的唯一方法是从 CodeCommit 存储库中提取。

我们将现有目录称作*本地存储库*，将新目录称作*共享存储库* (即使它们位于同一台本地计算机上)。

从新目录中，您将获得 CodeCommit 存储库的单独副本。然后，您可以添加一个新的示例文件，将更改提交到共享存储库，然后将该提交从共享存储库推送到您的 CodeCommit 存储库。

最后，将存储库中的更改拉取到本地存储库，然后浏览它以查看其他用户提交的更改。

1. 切换到 `/tmp` 目录或 `c:\temp` 目录。

1. 运行 **git clone** 在共享存储库中提取一份存储库副本：

   对于 HTTPS：

   ```
   git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo shared-demo-repo
   ```

   对于将 HTTPS 与 **git-remote-codecommit** 一起使用：

   ```
   git clone codecommit://MyDemoRepo shared-demo-repo
   ```

   对于 SSH：

   ```
   git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo shared-demo-repo
   ```
**注意**  
在 Windows 操作系统上使用 SSH 克隆存储库时，您可能需要将 SSH 密钥 ID 添加到连接字符串，如下所示：  

   ```
   git clone ssh://Your-SSH-Key-ID@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
   ```
有关更多信息，请参阅 [适用于 Windows 上的 SSH 连接](setting-up-ssh-windows.md)。

   在此命令中，`MyDemoRepo`是您的 CodeCommit 存储库的名称。 `shared-demo-repo`是 Git 在目录或目录中创建的`/tmp``c:\temp`目录的名称。Git 创建该目录后，会向 `shared-demo-repo` 目录中提取一份存储库副本。

1. 切换到 `shared-demo-repo` 目录：

   ```
   (For Linux, macOS, or Unix) cd /tmp/shared-demo-repo
   (For Windows) cd c:\temp\shared-demo-repo
   ```

1. 运行**git config**添加另一个由占位符表示的用户名和电子邮件地址，然后*other-user-name*。*other-email-address*这样，就可以更轻松地标识其他用户进行的提交：

   ```
   git config --local user.name "other-user-name"
   git config --local user.email other-email-address
   ```

1. 使用文本编辑器在 `shared-demo-repo` 目录中创建以下示例文本文件。将该文件命名为 `horse.txt`：

   ```
   horse.txt
   -------
   The horse (Equus ferus caballus) is one of two extant subspecies of Equus ferus.
   ```

1. 运行 **git add** 将更改暂存到共享存储库：

   ```
   git add horse.txt
   ```

1. 运行 **git commit** 将更改提交到共享存储库：

   ```
   git commit -m "Added horse.txt"
   ```

1. 运行**git push**以通过 Git 在仓库中使用的默认远程名称 (`origin`)，从本地 CodeCommit 仓库的默认分支 (`main`) 推送你的初始提交：

   ```
   git push -u origin main
   ```

1. 切换到本地存储库，然后运行将共享存储库提交**git pull**到存储库的内容拉入本地存储库。 CodeCommit 然后运行 **git log** 查看从共享存储库发起的提交。

## 步骤 6：创建并共享分支
<a name="getting-started-branching"></a>

在此步骤中，你将在本地存储库中创建一个分支，进行一些更改，然后将该分支推送到您的 CodeCommit 存储库。然后，您将分支从存储库中拉到共享存储 CodeCommit 库。

分支允许您独立开发存储库内容的不同版本。例如，在不影响团队成员工作的情况下使用新的软件功能。当该功能稳定时，可以将分支合并到软件的更稳定的分支中。

使用 Git 创建分支，然后将其指向您的第一个提交。您可以使用 Git 将分支推送到 CodeCommit 仓库。然后，切换到您的共享存储库，使用 Git 将新分支拉取到共享本地存储库并查看该分支。

1. 在本地存储库中运行 **git checkout**，指定该分支的名称（例如 `MyNewBranch`）和您在本地存储库中的第一个提交的 ID。

   如果不知道提交 ID，可以运行 **git log** 获取它。确保提交使用的是您的用户名和电子邮件地址，而不是其他用户的用户名和电子邮件地址。这是为了模拟 CodeCommit 存储库的稳定版本，`main`而`MyNewBranch`分支用于一些新的、相对不稳定的功能：

    

   ```
   git checkout -b MyNewBranch commit-ID
   ```

1. 运行**git push**将新分支从本地存储库发送到 CodeCommit 存储库：

   ```
   git push origin MyNewBranch
   ```

1. 现在，将分支提取到共享存储库并检查结果：

   1. 切换到共享存储库目录 (shared-demo-repo)。

   1. 提取新分支 (**git fetch origin**)。

   1. 确认已提取分支（**git branch --all** 显示存储库所有分支的列表）。

   1. 切换到新分支 (**git checkout MyNewBranch**)。

   1. 通过运行 **git status** 或 **git branch** 确认您已切换到 `MyNewBranch` 分支。输出将显示您所在的分支。在本示例中，输出应为 `MyNewBranch`。

   1. 查看分支中的提交列表 (**git log**)。

   以下是要调用的 Git 命令的列表：

   ```
   git fetch origin
   git branch --all
   git checkout MyNewBranch
   git branch or git status
   git log
   ```

1. 切换回 `main` 分支，查看其提交列表。Git 命令应如下所示：

    

   ```
   git checkout main
   git log
   ```

1. 切换到本地存储库中的 `main` 分支。您可以运行 **git status** 或 **git branch**。输出将显示您所在的分支。在本示例中，输出应为 `main`。Git 命令应如下所示：

    

   ```
   git checkout main
   git branch or git status
   ```

## 步骤 7：创建并共享标签
<a name="getting-started-tags"></a>

在此步骤中，您将在本地存储库中创建两个标签，将这些标签与提交相关联，然后将标签推送到您的 CodeCommit 存储库。然后，您将更改从 CodeCommit 存储库拉到共享存储库。

标签用于给提交 (或分支，甚至是另一个标签) 起一个易于阅读的名称。例如，如果要将提交标记为 `v2.1`，则可如此操作。提交、分支或标签可以关联任意数量的标签，但一个标签只能关联一个提交、分支或标签。在本教程中，将一个提交标记为 `release`，将另一个提交标记为 `beta`。

您使用 Git 创建标签，将 `release` 标签指向您进行的第一个提交，并将 `beta` 标签指向其他用户进行的提交。然后使用 Git 将标签推送到 CodeCommit 仓库。接下来，切换到您的共享存储库，使用 Git 将标签拉取到共享本地存储库并查看标签。

1. 在本地存储库中运行 **git tag**，指定新标签的名称（例如 `release`）和您在本地存储库中的第一个提交的 ID。

   如果不知道提交 ID，可以运行 **git log** 获取它。确保提交使用的是您的用户名和电子邮件地址，而不是其他用户的用户名和电子邮件地址。这是为了模拟你的提交是 CodeCommit 存储库的稳定版本：

   ```
   git tag release commit-ID
   ```

   再次运行 **git tag**，将其他用户的提交与 `beta` 标签关联。这是模拟该提交用于某种新的、相对不稳定的功能的情况：

    

   ```
   git tag beta commit-ID
   ```

1. 运行**git push --tags**将标签发送到 CodeCommit 存储库。

1. 现在，将标签提取到共享存储库并检查结果：

   1. 切换到共享存储库目录 (shared-demo-repo)。

   1. 提取新标签 (**git fetch origin**)。

   1. 确认已提取标签（**git tag** 显示存储库的标签列表）。

   1. 查看有关每个标签（**git log release** 和 **git log beta**）的信息。

   以下是要调用的 Git 命令的列表：

   ```
   git fetch origin
   git tag
   git log release
   git log beta
   ```

1. 也请尝试在本地存储库中执行该操作：

   ```
   git log release
   git log beta
   ```

## 步骤 8：设置访问权限
<a name="getting-started-permissions"></a>

在此步骤中，您授予用户将共享存储库与 CodeCommit 存储库同步的权限。此为可选步骤。当用户使用 Git 凭证或 SSH 密钥对与 IAM 用户一起使用访问 CodeCommit 存储库时，有兴趣了解如何控制对 CodeCommit 仓库的访问权限的用户建议使用该工具。

**注意**  
如果您使用的是联合访问、临时凭证或 Web 身份提供者验证（例如 IAM Identity Center），请为您的身份提供者设置用户、访问权限和权限，然后使用 **git-remote-codecommit**。有关更多信息，请参阅[使用的 HTTPS 连接 AWS CodeCommit 的设置步骤 git-remote-codecommit](setting-up-git-remote-codecommit.md)和[使用轮换凭证连接到 AWS CodeCommit 存储库](temporary-access.md)。

为此，您可以使用 IAM 控制台创建一个用户，默认情况下，该用户无权将共享存储库与 CodeCommit 存储库同步。您可以运行 **git pull** 来验证这一点。如果新用户没有同步权限，则该命令不起作用。然后，返回到 IAM 控制台，应用允许该用户使用 **git pull** 的策略。随后，您可以再次运行 **git pull** 进行验证。

此步骤假定您具备在 Amazon Web Services 账户中创建 IAM 用户的权限。如果您不具备这些权限，则无法执行此步骤中的过程。请跳到[步骤 9：清除](#getting-started-clean-up)并清理学习教程时所使用的资源。

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

   请务必用您在[设置 ](setting-up.md)中使用的用户名和密码登录。

1. 在导航窗格中选择**用户**，然后选择**创建新用户**。

1. 在第一个**输入用户名称**框中，输入示例用户名（例如，**JaneDoe-CodeCommit**）。选中**为每个用户生成访问密钥**框，然后选择**创建**。

1. 选择**显示用户安全凭证**。记下访问密钥 ID 和秘密访问密钥，或选择 **Download Credentials**。

1. 按照[适用于使用 Git 凭证的 HTTPS 用户](setting-up-gc.md)中的说明进行操作以生成并提供 IAM 用户的凭证。

   如果需要使用 SSH，请按照[SSH 和 Linux、macOS 或 Unix：为 Git 设置公钥和私钥以及 CodeCommit](setting-up-ssh-unixes.md#setting-up-ssh-unixes-keys-unixes)或[第 3 步：为 Git 设置公钥和私钥以及 CodeCommit](setting-up-ssh-windows.md#setting-up-ssh-windows-keys-windows)中的说明操作，设置用户及公钥和私钥。

1. 运行 **git pull**。此时会出现下面的错误：

   对于 HTTPS：

    `fatal: unable to access 'https://git-codecommit.us-east-2.amazonaws.com/v1/repos/repository-name/': The requested URL returned error: 403`. 

   对于 SSH：

   `fatal: unable to access 'ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/repository-name/': The requested URL returned error: 403`. 

   出现错误是因为新用户无权将共享存储库与 CodeCommit 存储库同步。

1. 返回到 IAM 控制台。在导航窗格中选择 **Policies**，然后选择 **Create Policy**。（如果 **Get Started** 按钮出现，选择此按钮，然后选择 **Create Policy**。）

1. 在 **Create Your Own Policy** 旁，选择 **Select**。

1. 在**策略名称**框中，输入名称（例如 **CodeCommitAccess-GettingStarted**）。

1. 在**策略文档**框中，输入以下内容，它允许 IAM 用户从与该 IAM 用户关联的任何存储库中拉取内容：

    

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "codecommit:GitPull"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

    
**提示**  
如果您希望该 IAM 用户能够将提交推送到与之关联的任何存储库，请改为输入：  

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "codecommit:GitPull",
           "codecommit:GitPush"
         ],
         "Resource": "*"
       }
     ]
   }
   ```
有关您可以授予用户的其他 CodeCommit 操作和资源权限的信息，请参阅[的身份验证和访问控制 AWS CodeCommit](auth-and-access-control.md)。

1. 在导航窗格中，选择 **Users**（用户）。

1. 选择要附加策略的示例用户名（例如，**JaneDoe-CodeCommit**）。

1. 选择**权限**选项卡。

1. 在 **Managed Policies** 中，选择 **Attach Policy**。

1. 选择您刚刚创建的 **CodeCommitAccess-GettingStarted** 策略，然后选择 **Attach Policy (附加策略)**。

1. 运行 **git pull**。这一次，命令应能起作用，并显示 `Already up-to-date` 消息。

1. 如果您使用 HTTPS，请切换到您的原始 Git 凭证；或者，如果使用 **git-remote-codecommit**，请切换到您的常用配置文件。有关更多信息，请参阅[适用于使用 Git 凭证的 HTTPS 用户的设置](setting-up-gc.md)或[使用的 HTTPS 连接 AWS CodeCommit 的设置步骤 git-remote-codecommit](setting-up-git-remote-codecommit.md)中的说明。

   如果使用的是 SSH，请切换到您的原始密钥。有关更多信息，请参阅 [SSH 和 Linux、macOS 或 Unix：为 Git 设置公钥和私钥以及 CodeCommit](setting-up-ssh-unixes.md#setting-up-ssh-unixes-keys-unixes)或 [第 3 步：为 Git 设置公钥和私钥以及 CodeCommit](setting-up-ssh-windows.md#setting-up-ssh-windows-keys-windows)。

本教程到此结束。

## 步骤 9：清除
<a name="getting-started-clean-up"></a>

在此步骤中，您将删除在本教程中使用的 CodeCommit 存储库，这样就不会继续向您收取存储空间费用。

您还可以移除本地存储库和本地计算机上的共享存储库，因为删除存储库后将不再需要它们。 CodeCommit 

**重要**  
删除该存储库后，您就无法再将其克隆到任何本地存储库或共享存储库，也无法再从任何本地存储库或共享存储库向其推送数据或从其拉取数据。并且无法撤消。

### 删除 CodeCommit 存储库（控制台）
<a name="getting-started-clean-up-console"></a>

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

1. 在 **Dashboard (控制面板)** 页面的存储库列表中，选择 **MyDemoRepo**。

1. 在导航窗格中，选择**设置**。

1. 在 **Settings** 页面上的 **Delete repository** 中，选择 **Delete repository**。

1. 在 **Type the name of the repository to confirm deletion (键入存储库名称以确认删除)** 旁边的框中，输入 **MyDemoRepo**，然后选择 **Delete (删除)**。

### 删除 CodeCommit 存储库 (AWS CLI)
<a name="getting-started-clean-up-cli"></a>

运行 [delete-repository](how-to-delete-repository.md#how-to-delete-repository-cli) 命令：

```
aws codecommit delete-repository --repository-name MyDemoRepo
```

### 删除本地存储库和共享存储库
<a name="getting-started-delete-repos"></a>

对于 Linux、macOS 或 Unix：

```
cd /tmp
rm -rf /tmp/my-demo-repo
rm -rf /tmp/shared-demo-repo
```

对于 Windows：

```
cd c:\temp
rd /s /q c:\temp\my-demo-repo
rd /s /q c:\temp\shared-demo-repo
```