

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

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

# 使用源存储库存储代码并协作处理代码 CodeCatalyst
<a name="source"></a>

CodeCatalyst 源存储库是托管在亚马逊的 Git 存储库 CodeCatalyst。您可以使用中的源存储库 CodeCatalyst 来安全地存储、版本和管理项目的资产。

 CodeCatalyst 存储库中的资产可以包括：
+ 文档
+ 源代码 
+ 二进制文件

CodeCatalyst 还使用项目的源存储库来存储项目的配置信息，例如工作流程配置文件。

一个 CodeCatalyst 项目中可以有多个源存储库。例如，您可能希望为前端源代码、后端源代码、实用程序和文档设置单独的源存储库。

以下是处理源代码库、拉取请求和开发环境中代码的一种可能的工作流程 CodeCatalyst：

Mary Major CodeCatalyst 使用蓝图创建了一个 Web 应用程序项目，该蓝图创建了一个包含示例代码的源存储库。她邀请自己的朋友 Li Juan、Saanvi Sarkar 和 Jorge Souza 一起参与这个项目。Li Juan 查看了源存储库中的示例代码，决定简单地进行一些更改，以便在代码中添加测试。Li 创建了一个开发环境，选择 AWS Cloud9 作为 IDE，然后指定一个新分支*test-code*。开发环境打开。Li 快速添加代码，然后提交分支并将其推送到源存储库中 CodeCatalyst。接下来，Li 创建了一个拉取请求。在创建该拉取请求时，Li 将 Jorge Souza 和 Saanvi Sarkar 添加为审阅者，以确保代码得到审查。

在查看代码时，Jorge Souza记得他有自己的项目存储库 GitHub ，其中包含他们正在开发的应用程序的原型。他让 Mary Major 安装和配置扩展程序，使他能够将 GitHub 存储库作为额外的源存储库链接到项目。Mary 查看了存储库 GitHub 并与 Jorge 合作配置了 GitHub 扩展，这样他就可以将 GitHub 存储库链接为该项目的额外源存储库。

CodeCatalyst 源代码库支持 Git 的标准功能，可与现有的基于 Git 的工具配合使用。在 Git 客户端或集成开发环境 (PATs) 中克隆和使用源存储库时，您可以创建和使用个人访问令牌 (IDEs) 作为应用程序特定的密码。 PATs 它们与您的 CodeCatalyst用户身份相关联。有关更多信息，请参阅 [使用个人访问令牌向用户授予对存储库的访问权限](ipa-tokens-keys.md)。

CodeCatalyst 源存储库支持拉取请求。这是一种简单的方法，让您和其他项目成员可在将代码更改从一个分支合并到另一个分支之前查看和评论代码更改。您可以在 CodeCatalyst 控制台中查看更改并评论代码行。

推送到 CodeCatalyst 源存储库中的分支可以自动启动工作流程中的运行，在该工作流程中可以构建、测试和部署更改。如果您的源存储库是作为使用项目模板的项目的一部分创建的，则会为您配置一个或多个工作流作为项目的一部分。您可以随时为存储库添加其他工作流。项目中工作流的 YAML 配置文件存储到的源存储库，是在源操作中为这些工作流配置的源存储库。有关更多信息，请参阅 [入门工作流](workflows-getting-started.md)。

**Topics**
+ [源存储库概念](source-concepts.md)
+ [为使用源存储库进行设置](source-setting-up.md)
+ [开始使用 CodeCatalyst 源存储库和单页应用程序蓝图](source-getting-started.md)
+ [将源代码存储在项目的存储库中 CodeCatalyst](source-repositories.md)
+ [使用 Amazon 中的分支来整理源代码 CodeCatalyst](source-branches.md)
+ [在 Amazon 中管理源代码文件 CodeCatalyst](source-files.md)
+ [在 Amazon 中使用拉取请求查看代码 CodeCatalyst](source-pull-requests.md)
+ [通过在 Amazon 中提交来了解源代码的变化 CodeCatalyst](source-commits.md)
+ [中的源存储库配额 CodeCatalyst](source-quotas.md)

# 源存储库概念
<a name="source-concepts"></a>

以下是您在使用 CodeCatalyst 源存储库时需要了解的一些概念。

**Topics**
+ [Projects](#project-concept)
+ [源存储库](#source-repository-concept)
+ [开发环境](#devenvironment-concept)
+ [个人访问令牌 (PATs)](#personal-access-token-concept)
+ [Branches](#branches-concept)
+ [默认分支](#default-branch-concept)
+ [提交](#commits-concept)
+ [拉取请求](#pull-request-concept)
+ [修订](#revision-concept)
+ [工作流](#workflow-concept)

## Projects
<a name="project-concept"></a>

*项目*代表一种为开发团队和任务提供支持的协作努力。 CodeCatalyst 在拥有项目后，可以添加、更新或移除用户和资源，自定义您的项目控制面板以及监控团队的工作进度。一个空间内可以有多个项目。

源存储库特定于您在空间中创建或链接源存储库的项目。您不能在项目之间共享存储库，也不能将一个存储库链接到一个空间中的多个项目。在项目中具有**贡献者**或**项目管理员**角色的用户，可以根据授予给这些角色的权限，与该项目关联的源存储库进行交互。有关更多信息，请参阅 [使用用户角色授予访问权限](ipa-roles.md)。

## 源存储库
<a name="source-repository-concept"></a>

*源存储库*用于安全地存储项目的代码和文件。它还存储文件的版本历史记录。默认情况下，源存储库与 CodeCatalyst 项目中的其他用户共享。一个项目可以有多个源存储库。您可以为中的项目创建源存储库 CodeCatalyst，也可以选择链接其他服务托管的现有源存储库（如果已安装的扩展程序支持该服务）。例如，在安装 GitHub 存储库扩展之后，您可以将**GitHub 存储库**链接到项目。有关更多信息，请参阅[将源代码存储在项目的存储库中 CodeCatalyst](source-repositories.md)和[快速入门：安装扩展、连接提供商和链接资源 CodeCatalyst](extensions-quickstart.md)。

## 开发环境
<a name="devenvironment-concept"></a>

*开发环境*是一种基于云的开发环境，您可以使用它 CodeCatalyst 来快速处理存储在项目源存储库中的代码。开发环境中包含的项目工具和应用程序库由项目的源存储库中的 devfile 定义。如果您的源存储库中没有 devfile，系统会自动应用默认的 devfile。默认 devfile 包括适用于最常用的编程语言和框架的工具。默认情况下，为开发环境配备了双核处理器、4 GB RAM 和 16 GiB 持久性存储。

您可以选择将源存储库的现有分支克隆到开发环境中，也可以选择在创建开发环境时创建一个新分支。

## 个人访问令牌 (PATs)
<a name="personal-access-token-concept"></a>

*个人访问令牌*（PAT）类似于密码。它与您的用户身份相关联，可在中的所有空间和项目中使用 CodeCatalyst。您可以使用 PATs 访问包括集成开发环境 (IDEs) 和基于 Git 的源存储库在内的 CodeCatalyst 资源。 PATs 代表你 CodeCatalyst ，你可以在用户设置中对其进行管理。一个用户可以有多个 PAT。个人访问令牌仅显示一次。最佳实践是，务必将 PAT 安全地存储在本地计算机上。默认情况下，一年后 PATs 过期。

使用集成开发环境 (IDEs) 时，等同 PATs 于 Git 密码。在设置 IDE 与 Git 存储库协同工作时，如果要求输入密码，请提供 PAT。有关如何将 IDE 与基于 Git 的存储库连接的更多信息，请参阅 IDE 的文档。

## Branches
<a name="branches-concept"></a>

*分支*是指向 Git 和中的提交的指针或引用 CodeCatalyst。您可以使用分支来组织您的工作。例如，您可以使用分支来处理文件的新版本或不同版本，而不会影响其他分支中的文件。您可以使用分支来开发新功能、存储项目的特定版本等。一个源存储库可以有一个或多个分支。使用模板创建项目时，为项目创建的源存储库会在名为 **main** 的分支中包含示例文件。**main** 分支是存储库的默认分支。

## 默认分支
<a name="default-branch-concept"></a>

无论您如何创建，中的源存储库都 CodeCatalyst 有一个默认分支。如果您选择使用模板创建项目，在为该项目创建的源存储库中，除了示例代码、工作流定义和其他资源以外，还包括一个 README.md 文件。如果创建源存储库时没有使用模板，则会在第一次提交时为您添加 README.md 文件，并在创建源存储库时为您创建默认分支。该默认分支名为 *main*。此默认分支在用户克隆存储库时被用作本地存储库的基本或默认分支。您可以更改将哪个分支用作默认分支。有关更多信息，请参阅 [管理存储库的默认分支](source-branches-default-branch.md)。

您不能删除源存储库的默认分支。搜索结果只包括默认分支的结果。

## 提交
<a name="commits-concept"></a>

*提交*是对一个或一组文件所做的更改。在 Amazon CodeCatalyst 控制台中，提交会保存您的更改并将其推送到源存储库。提交包含有关更改的信息，包括执行了更改的用户的身份、更改的时间和日期、提交标题以及包含的有关更改的任何消息。有关更多信息，请参阅 [通过在 Amazon 中提交来了解源代码的变化 CodeCatalyst](source-commits.md)。

在中的源存储库的上下文中 CodeCatalyst，提交是存储库内容和内容更改的快照。您还可以为提交添加 Git 标签，用于标识特定提交。

## 拉取请求
<a name="pull-request-concept"></a>

*拉取请求*是您和其他用户在源存储库中审查、评论和合并从一个分支到另一个分支的代码更改的主要方式。您可以使用拉取请求来协同审查代码更改，包括次要的更改或修复、主要功能添加或已发布软件的新版本。在拉取请求中，您可以查看源分支和目标分支之间的更改，或这些分支修订版之间的差异。您可以为单行代码更改添加注释，也可以为整个拉取请求添加注释。

**提示**  
在创建拉取请求时，显示的差异是源分支最新块与目标分支最新块之间的差异。创建拉取请求后，显示的差异将是您选择的拉取请求修订版与创建拉取请求时目标分支最新块的提交之间的差异。有关 Git 中的差异和合并基础的更多信息，请参阅 Git 文档[git-merge-base](https://git-scm.com/docs/git-merge-base)中的。

## 修订
<a name="revision-concept"></a>

*修订版*是拉取请求的更新版本。每次向拉取请求的源分支推送，都会创建一个修订版，其中包含该推送中包含的提交所做的更改。除了源分支和目标分支之间的差异外，您还可以查看拉取请求修订版之间的差异。有关更多信息，请参阅 [在 Amazon 中使用拉取请求查看代码 CodeCatalyst](source-pull-requests.md)。

## 工作流
<a name="workflow-concept"></a>

*工作流*是一个自动化过程，它描述了如何在持续集成和持续交付（CI/CD）系统中构建、测试和部署代码。工作流定义了在工作流运行期间要执行的一系列步骤，也称为*操作*。工作流还定义了促使工作流启动的事件或*触发器*。要设置工作流程，您可以使用 CodeCatalyst 控制台[的可视化或 YAML 编辑器](https://docs.aws.amazon.com//codecatalyst/latest/userguide/flows.html#workflow.editors)创建*工作流程定义文件*。

**提示**  
要快速了解如何在项目中使用工作流，请[使用蓝图创建项目](https://docs.aws.amazon.com//codecatalyst/latest/userguide/projects-create.html#projects-create-console-template)。每个蓝图都部署了一个可以正常运行的工作流，您可以对工作流进行查看、运行和试验。

源存储库还可以存储工作流、通知、事务的配置文件和其他信息，以及项目的其他配置信息。在创建需要配置文件的资源时，或将存储库指定为工作流的源操作时，会创建配置文件并将其存储在源存储库中。如果根据蓝图创建项目，配置文件已作为项目的一部分，存储在为您创建的源存储库中。这些配置信息存储在存储库默认分支中名为 `.codecatalyst` 的文件夹中。在创建默认分支的分支时，除了该分支中的所有其他文件和文件夹之外，还会创建该文件夹及其配置的副本。

# 为使用源存储库进行设置
<a name="source-setting-up"></a>

当您在本地计算机 CodeCatalyst 上使用 Amazon 中的源存储库时，您可以单独使用 Git 或在支持的集成开发环境 (IDE) 中进行代码更改以及推送和拉取代码。作为最佳做法，我们建议您使用最新版本的 Git 和其他软件。

**注意**  
如果您使用开发环境，则不必安装 Git。您的开发环境中包含最新版本的 Git。


**的版本兼容性信息 CodeCatalyst**  

| 组件 | 版本 | 
| --- | --- | 
| Git | 最新 | 

## 安装 Git
<a name="source-setting-up-git"></a>

要在没有 IDE 的情况下通过 Git 客户端处理源存储库中的文件、提交、分支和其他信息，请在本地计算机上安装 Git。

要安装 Git，建议您访问 [Git 下载](http://git-scm.com/downloads)等网站。

## 创建个人访问令牌
<a name="source-setting-up-pat"></a>

要将源存储库克隆到本地计算机或首选的 IDE，必须创建个人访问令牌（PAT）。

**创建个人访问令牌（PAT）**

1. 在顶部菜单栏中，选择您的个人资料徽章，然后选择**我的设置**。
**提示**  
您还可以通过转到项目或空间的成员页面，然后从成员列表中选择您的姓名，找到您的用户个人资料。

1. 在 **PAT 名称**中，为您的 PAT 输入描述性名称。

1. 在**到期日期**中，保留默认日期，或者选择日历图标以自定义日期。到期日期默认为从当前日期起一年后。

1. 选择**创建**。

   当为源存储库选择**克隆存储库**时，也可以创建此令牌。

1. 将 PAT 密钥保存在安全位置。
**重要**  
PAT 密钥仅显示一次。关闭窗口后将无法再检索该密钥。

# 开始使用 CodeCatalyst 源存储库和单页应用程序蓝图
<a name="source-getting-started"></a>

按照本教程中的步骤学习如何在 Amazon 中使用源存储库 CodeCatalyst。

要开始使用 Amazon 中的源存储库，最快的方法 CodeCatalyst 是使用模板创建项目。使用模板创建项目时，系统会为您创建资源，包括其中含有示例代码的源存储库。您可以使用此存储库和代码示例来了解如何执行以下操作：
+ 查看项目的源存储库并浏览其内容
+ 创建一个带有新分支的开发环境，在其中开发代码
+ 更改文件，提交并推送更改内容
+ 创建拉取请求，并与其他项目成员一起审查代码更改
+ 查看自动构建和测试拉取请求源分支中的更改的项目工作流
+ 将源分支中的更改合并到目标分支，并关闭拉取请求
+ 查看自动构建和部署的合并更改

要充分学习本教程的内容，请邀请他人加入您的项目，以便共同完成拉取请求。您还可以在中探索其他功能 CodeCatalyst，例如创建议题并将其与拉取请求关联，或者配置通知并在关联的工作流程运行时收到提醒。有关全面的探索 CodeCatalyst，请参阅[入门教程](getting-started-topnode.md)。

## 使用蓝图创建项目
<a name="source-getting-started-proj-create"></a>

要协同工作，首先要创建项目。您可以使用蓝图来创建项目，这还会创建一个包含示例代码的源存储库和一个工作流，当您更改代码时，工作流会自动构建和部署您的代码。在本教程中，我们将指导您完成一个使用**单页应用程序**蓝图创建的项目，不过您也可以对任何有源存储库的项目使用这些步骤。在创建项目时，确保选择一个 IAM 角色或添加一个 IAM 角色（如果没有）。我们建议您在此项目中使用 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 服务角色。

如果您已经有一个项目，可以跳到[查看项目的存储库](#source-getting-started-source-view)。

**注意**  
只有拥有 Space 管理员或 **Power 用户**角色的用户才能在中创建项目 CodeCatalyst。如果您没有此角色，但需要一个项目来完成本教程，请让具有这些角色之一的人员为您创建一个项目，并将您添加到已创建的项目中。有关更多信息，请参阅 [使用用户角色授予访问权限](ipa-roles.md)。

**使用蓝图创建项目**

1. 在 CodeCatalyst 控制台中，导航到要在其中创建项目的空间。

1. 在空间控制面板上，选择**创建项目**。

1. 选择**从蓝图开始**。
**提示**  
您可以选择向 **Amazon Q** 提供您的项目需求，让 Amazon Q 为您推荐蓝图，以此来添加蓝图。有关更多信息，请参阅[创建项目或添加功能时使用 Amazon Q 选择蓝图](getting-started-project-assistance.md#getting-started-project-assistance-create-apply-bp)和[使用 Amazon Q 通过蓝图创建项目或添加功能时的最佳实践](projects-create.md#projects-create-amazon-q)。此功能仅在美国西部（俄勒冈州）区域中提供。  
此功能要求为空间启用生成式人工智能功能。有关更多信息，请参阅 [Managing generative AI features](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)。

1. **在**CodeCatalyst 蓝图**或**空间蓝**图选项卡中，选择蓝图，然后选择下一步。**

1. 在**命名项目**下，输入要分配给项目的名称及其关联资源名称。该名称在空间内必须是唯一的。

1. （可选）默认情况下，蓝图创建的源代码存储在存储 CodeCatalyst 库中。此外，您可以选择将蓝图源代码存储在第三方存储库中。有关更多信息，请参阅 [为带有扩展程序的项目添加功能 CodeCatalyst使用扩展向项目添加功能](extensions.md)。
**重要**  
CodeCatalyst 不支持检测链接仓库的默认分支中的更改。要更改链接存储库的默认分支，必须先取消其与该分支的链接 CodeCatalyst，更改默认分支，然后再次进行链接。有关更多信息，请参阅 [在中关联 GitHub 存储库、Bitbucket 存储库、 GitLab 项目存储库和 Jira 项目 CodeCatalyst](extensions-link.md)。  
作为最佳实践，在链接存储库之前，请始终确保您拥有最新版本的扩展。

   根据要使用的第三方存储库提供商，执行以下操作之一：
   + **GitHub 存储库**：Connect GitHub 账户。

     选择 “**高级**” 下拉菜单，选择 GitHub作为存储库提供者，然后选择要存储蓝图创建的源代码的 GitHub 帐户。
**注意**  
如果您要关联 GitHub 账户，则必须创建个人连接才能在您的身份和身份之间建立 CodeCatalyst 身份映射。 GitHub 有关更多信息，请参阅[个人连接](concepts.md#personal-connection-concept)和[通过人际关系访问 GitHub 资源](ipa-settings-connections.md)。
   + **Bitbucket 存储库**：连接 Bitbucket 工作区。

     选择**高级**下拉菜单，选择 Bitbucket 作为存储库提供商，然后选择用于存储蓝图所创建的源代码的 Bitbucket 工作区。
   + **GitLab 存储库**：Connect GitLab 用户。

     选择 “**高级**” 下拉菜单，选择 GitLab作为存储库提供者，然后选择要存储蓝图创建的源代码的 GitLab 用户。

1. 在**项目资源**下，配置蓝图参数。根据蓝图的不同，您可以选择命名源存储库名称。

1. （可选）要根据您选择的项目参数查看包含更新的定义文件，请从**生成项目预览**中选择**查看代码**或**查看工作流**。

1. （可选）从蓝图卡中选择**查看详细信息**，查看蓝图的具体详细信息，如蓝图架构概述、所需连接和权限，以及蓝图创建的资源种类。

1. 选择**创建项目**。

创建项目或接受项目邀请并完成登录过程后，项目概述页面就会打开。新项目的项目概述页面不包含待解决事务或拉取请求。您可以选择性创建一个事务并将其分配给自己。您也可以选择邀请其他人加入您的项目。有关更多信息，请参阅[在中创建问题 CodeCatalyst](issues-create-issue.md)和[邀请用户加入项目](projects-members.md#projects-members-add)。

## 查看项目的存储库
<a name="source-getting-started-source-view"></a>

作为项目成员，您可以查看项目的源存储库。您还可以选择创建其他存储库。如果拥有 **Space 管理员**角色的用户安装并配置了**GitHub 存储库**、**Bitbucket 存储库**或**GitLab 存储库**扩展，您还可以在为扩展程序配置的 GitHub 账户、Bitbucket 工作空间或 GitLab 用户中添加指向第三方存储库的链接。有关更多信息，请参阅[创建源存储库](source-repositories-create.md)和[快速入门：安装扩展、连接提供商和链接资源 CodeCatalyst](extensions-quickstart.md)。

**注意**  
对于使用单页应用程序蓝图创建的项目，包含示例代码的源存储库的默认名称为***spa-app***。

**导航到项目的源存储库**

1. 导航到您的项目，然后执行下列操作之一：
   + 在项目的摘要页面上，从列表中选择所需的存储库，然后选择**查看存储库**。
   + 在导航窗格中，选择**代码**，然后选择**源存储库**。在**源存储库**中，从列表中选择存储库的名称。您可以通过在筛选栏中键入部分存储库名称，筛选存储库列表。

1. 在存储库主页上，查看存储库的内容以及有关关联资源的信息，例如拉取请求和工作流的数量。默认情况下，会显示默认分支的内容。您可通过选择此下拉列表中的其他分支来更改视图。

存储库的概述页面包含有关为该存储库的分支及其文件配置的工作流和拉取请求的信息。如果您刚刚创建项目，那么构建、测试和部署代码的初始工作流仍在运行，因为它们需要几分钟才能完成。您可以通过选择**相关工作流**下方的数字来查看相关工作流及其状态，但这将在 **CI/CD** 中打开**工作流**页面。在本教程中，请继续浏览概述页面，并探索存储库中的代码。`README.md` 文件的内容会显示在该页面上的存储库文件下方。在**文件**中，显示默认分支的内容。如果有其他分支，您可以更改文件视图以显示其他分支的内容。`.codecatalyst` 文件夹包含用于项目其他部分的代码，如工作流 YAML 文件。

要查看文件夹的内容，请选择文件夹名称旁边的箭头展开文件夹。例如，选择 `src` 旁边的箭头可查看该文件夹中包含的单页 Web 应用程序的文件。要查看某个文件的内容，请从列表中选择该文件。这将打开**查看文件**，您可以在其中浏览多个文件的内容。您也可以在控制台中编辑单个文件，但要编辑多个文件，建议您创建一个开发环境。

## 创建开发环境
<a name="source-getting-started-source-add"></a>

您可以在 Amazon CodeCatalyst 控制台中添加和更改源存储库中的文件。不过，要高效处理多个文件和分支，我们建议使用开发环境或将存储库克隆到本地计算机。在本教程中，我们将创建一个带有名为的分支的 AWS Cloud9 开发环境**develop**。您可以选择不同的分支名称，但只要将分支命名为 **develop**，在本教程稍后创建拉取请求时，工作流就会自动运行，以构建和测试您的代码。

**提示**  
如果您决定在本地克隆一个存储库，而不是使用开发环境，请确保您的本地计算机上有 Git 或您的 IDE 包含 Git。有关更多信息，请参阅 [为使用源存储库进行设置](source-setting-up.md)。

**使用新分支创建开发环境**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 导航到要在其中创建开发环境的项目。

1. 从项目的源存储库列表中选择存储库的名称。另外，在导航窗格中，依次选择**代码**、**源存储库**以及要为其创建开发环境的存储库。

1. 在存储库主页上，选择**创建开发环境**。

1. 从下拉菜单中选择受支持的 IDE。请参阅[开发环境支持的集成式开发环境](devenvironment-create.md#devenvironment-supported-ide)了解更多信息。

1. 选择要克隆的存储库，选择**在新分支中工作**，在**分支名称**字段中输入分支名称，然后从**创建分支自**下拉菜单中选择要从中创建新分支的分支。

1. 可选操作，为开发环境添加别名。

1. 可选操作，选择**开发环境配置**编辑按钮，编辑开发环境的计算、存储或超时配置。

1. 选择**创建**。在创建开发环境时，开发环境状态列将显示**正在启动**，开发环境创建完成后，状态列将显示**正在运行**。将在您选择的 IDE 中打开一个新选项卡，其中包含您的开发环境。您可以编辑代码并提交和推送更改。

创建开发环境后，您就可以编辑文件、提交更改并将更改推送到 **test** 分支。在本教程中，请编辑 `src` 文件夹中 `App.tsx` 文件的 `<p>` 标签之间的内容，以更改网页上显示的文本。提交并推送您的更改，然后返回 CodeCatalyst 选项卡。

## 在 AWS Cloud9 开发环境中进行和推送更改


1. 在中 AWS Cloud9，展开侧面导航菜单以浏览文件。展开 `src`，然后打开 `App.tsx`。

1. 更改 `<p>` 标签内的文本。

1. 保存文件，然后使用 Git 菜单提交并推送更改。或者，在终端窗口中使用 **git commit** 和 **git push** 命令提交和推送更改。

   ```
   git commit -am "Making an example change"
   git push
   ```
**提示**  
您可能需要将终端中的目录更改为 Git 存储库目录，然后才能成功运行 Git 命令。

## 创建拉取请求
<a name="source-getting-started-pull-request"></a>

您可以使用拉取请求来协同审查代码更改，包括次要的更改或修复、主要功能添加或已发布软件的新版本。在本教程中，您将创建一个拉取请求，以查看与**主*test***分支相比，您对分支所做的更改。在使用模板创建的项目中创建拉取请求也会启动相关工作流（如果有的话）的运行。

**创建拉取请求**

1. 导航到您的项目。

1. 请执行以下操作之一：
   + 在导航窗格中，依次选择**代码**、**拉取请求**和**创建拉取请求**。
   + 在存储库主页上，选择**更多**，然后选择**创建拉取请求**。
   + 在项目页面上，选择**创建拉取请求**。

1. 在**源代码库**中，确保指定的源存储库是包含所提交代码的存储库。只有在您未从存储库的主页创建拉取请求时，才会显示此选项。

1. 在**目标分支**中，在审查代码后，选择要将代码合并到的分支。

1. 在**源分支**中，选择包含所提交代码的分支。

1. 在**拉取请求标题**中，输入一个标题，帮助其他用户了解需要审查的内容及其原因。

1. （可选）在**拉取请求描述**中，提供诸如事务链接或所做更改的描述之类的信息。
**提示**  
你可以选择 “**为我写描述**”， CodeCatalyst 自动生成拉取请求中包含的更改的描述。您可以在将自动生成的描述添加到拉取请求后，对描述进行更改。  
此功能要求为空间启用生成式人工智能功能，并且不适用于链接的存储库中的拉取请求。有关更多信息，请参阅 [Managing generative AI features](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)。

1. （可选）在**事务**中，选择**关联事务**，然后从列表中选择事务或输入事务 ID。要取消链接事务，请选择“取消链接”图标。

1. （可选）在**必需的审阅者**中，选择**添加必需审阅者**。从项目成员列表中进行选择，添加审阅者。必需的审阅者必须批准更改，才能将拉取请求合并到目标分支。
**注意**  
您不能将审阅者同时添加为必需的审阅者和可选的审阅者。您不能将自己添加为审阅者。

1. （可选）在**可选的审阅者**中，选择**添加可选审阅者**。从项目成员列表中进行选择，添加审阅者。可选的审阅者不必批准更改，这并不是将拉取请求合并到目标分支之前的必备要求。

1. 审查分支之间的差异。拉取请求中显示的差异是源分支中的修订与合并基准之间的更改，而合并基准是创建拉取请求时目标分支的 HEAD 提交。如果未显示任何更改，则分支可能相同，或者您可能为源和目标选择了相同的分支。

1. 如果您对拉取请求中包含的希望审查的代码和更改感到满意，请选择**创建**。
**注意**  
创建拉取请求后，可以添加备注。可以将备注添加到拉取请求中或文件内的单独行中，也可以为整个拉取请求添加备注。您可以使用 @ 符号后跟文件名的方式，添加指向文件等资源的链接。

您可以通过选择**概述**，然后查看**工作流运行**下**拉取请求详细信息**区域中的信息，来查看创建此拉取请求所启动的相关工作流的信息。要查看工作流运行的情况，请选择该运行。

**提示**  
如果您将分支命名为 **develop** 以外的名称，工作流将不会自动运行以构建和测试您的更改。如果要对其进行配置，请编辑**onPullRequestBuildAndTest**工作流程的 YAML 文件。有关更多信息，请参阅 [创建工作流](workflows-create-workflow.md)。

您可以对此拉取请求发表评论，也可以要求其他项目成员发表评论。您还可以选择添加或更改可选或必需的审阅者。您可以选择对存储库的源分支进行更多更改，并查看这些已提交的更改是如何创建拉取请求修订版的。有关更多信息，请参阅[审核拉取请求](pull-requests-review.md)、[更新拉取请求](pull-requests-update.md)、[在 Amazon 中使用拉取请求查看代码 CodeCatalyst](source-pull-requests.md)和[查看工作流运行状态和详细信息](workflows-view-run.md)。

## 合并拉取请求
<a name="source-getting-started-merge-pull-request"></a>

拉取请求经过审核并获得所需审阅者的批准后，即可在 CodeCatalyst控制台中将其源分支合并到目标分支。合并拉取请求也会通过与目标分支相关联的工作流启动更改的运行。在本教程中，您将把测试分支合并到主分支中，这将开始**onPushToMainDeployPipeline**工作流程的运行。

**合并拉取请求（控制台）**

1. 在**拉取请求**中，选择您在上一步中创建的拉取请求。在拉取请求中，选择**合并**。

1. 从拉取请求的可用合并策略中选择。（可选）选择或取消选择在合并拉取请求后删除源分支的选项，然后选择**合并**。合并完成后，拉取请求的状态将变为**已合并**，并不再出现在拉取请求的默认视图中。默认视图显示状态为**待解决**的拉取请求。您仍然可以查看已合并的拉取请求，但不能审批该拉取请求或更改其状态。
**注意**  
如果 “**合并**” 按钮未激活，或者您看到 “**不可合并**” 标签，则可能是所需的审阅者尚未批准拉取请求，或者拉取请求无法在控制台中合并。 CodeCatalyst 在**拉取请求详细信息**区域的**概述**中，使用时钟图标来指示尚未批准拉取请求的审阅者。如果所有必需的审阅者都已批准了拉取请求，但**合并**按钮仍未激活，则可能存在合并冲突，或超出了空间的存储配额。您可以在开发环境中解决目标分支的合并冲突，推送更改，然后合并拉取请求，也可以解决冲突并在本地合并，然后将包含合并的提交推送到 CodeCatalyst。有关更多信息，请参阅[合并拉取请求（Git）](pull-requests-merge.md#pull-requests-merge-git)和您的 Git 文档。

## 查看已部署的代码
<a name="source-getting-started-view-workflow-results"></a>

现在，您可以查看默认分支中最初部署的代码，以及自动构建、测试和部署后合并的更改。为此，您可以返回存储库的概述页面，选择相关工作流图标旁边的数字，或在导航窗格中选择 **CI/CD**，然后选择**工作流**。

**查看已部署的代码**

1. 在**工作流**的 `onPushToMainDeployPipeline` 中，展开**最近的运行**。
**注意**  
这是使用**单页应用程序**蓝图创建的项目的工作流默认名称。

1. 最近的运行是由您合并到 `main` 分支的拉取请求提交所启动的运行，可能会显示**正在进行中**状态。从列表中选择成功完成的运行，打开该运行的详细信息。

1. 选择**变量**。复制 **AppURL** 的值。这是已部署的单页 Web 应用程序的 URL。打开一个新的浏览器标签页并粘贴该值，以查看已构建和部署的代码。保持标签页打开状态。

1. 返回工作流运行的列表，等待最近的运行完成。运行完成后，返回您打开的标签页，以查看 Web 应用程序并刷新浏览器。您应该能在合并的拉取请求中看到所做的更改。

## 清理资源
<a name="source-getting-started-clean-up"></a>

在探索了如何使用源存储库和拉取请求后，建议您删除任何不需要的资源。您不能删除拉取请求，但可以关闭它们。您可以删除任何已创建的分支。

如果您不再需要源存储库或项目，也可以删除这些资源。有关更多信息，请参阅[删除源存储库](source-repositories-delete.md)和[删除项目](projects-delete.md)。

# 将源代码存储在项目的存储库中 CodeCatalyst
<a name="source-repositories"></a>

源存储库用于安全地存储项目的代码和文件。源存储库还储存从首次提交到最新更改的源历史记录。如果您选择包含源存储库的蓝图，则该存储库还包含项目工作流和通知的配置文件和其他信息。这些配置信息存储在名为 **.codecatalyst** 的文件夹中。

您可以在中创建源存储库，方法 CodeCatalyst 是创建带有蓝图的项目，该蓝图将在创建项目时创建源存储库，也可以通过在现有项目中创建源存储库。项目用户将自动查看并能够使用您为项目创建的存储库。您也可以选择将托管在 Bibucket 上 GitHub的 Git 存储库或 GitLab 您的项目关联起来。当您这样做时，您的项目用户可以在项目存储库列表中查看和访问该链接的存储库。

**注意**  
在链接存储库之前，必须为托管该存储库的服务安装扩展。您无法链接已存档的存储库。虽然你可以链接一个空存储库，但在你使用创建默认分支的初始提交对其进行初始化 CodeCatalyst 之前，你不能在中使用它。有关更多信息，请参阅 [在空间中安装扩展](install-extension.md)。

默认情况下，源存储库与您的 Amazon CodeCatalyst 项目的其他成员共享。您可以为项目创建其他源存储库或将存储库链接到项目。项目的所有成员都可以查看、添加、编辑和删除项目源存储库中的文件和文件夹。

要快速处理源存储库中的代码，您可以创建一个开发环境来克隆指定的存储库和分支，以便在为开发环境选择的集成式开发环境（IDE）中处理代码。您可以在本地计算机上克隆源存储库，然后在本地存储库和远程存储库之间拉取和推送更改。 CodeCatalyst您也可以通过在首选 IDE 中配置对源存储库的访问权限来使用该存储库，前提是该 IDE 支持凭证管理。

存储库名称在 CodeCatalyst 项目中必须是唯一的。

**Topics**
+ [创建源存储库](source-repositories-create.md)
+ [将现有 Git 存储库克隆到源存储库中](source-repositories-add-existing.md)
+ [链接源存储库](source-repositories-link.md)
+ [查看源存储库](source-repositories-view.md)
+ [编辑源存储库的设置](source-repositories-edit.md)
+ [克隆源存储库](source-repositories-clone.md)
+ [删除源存储库](source-repositories-delete.md)

# 创建源存储库
<a name="source-repositories-create"></a>

当您在 Amazon 中使用蓝图创建项目时 CodeCatalyst， CodeCatalyst 会为您创建一个源存储库。除了为您创建的工作流和其他资源的配置信息外，该源存储库还包含示例代码。这是开始使用中的存储库的推荐方法 CodeCatalyst。您可以选择为项目创建存储库。这些存储库将包含一个 **README.md** 文件，您可以随时编辑或删除该文件。根据您在创建源存储库时的选择，存储库可能还包含一个 `.gitignore` 文件。

如果要将现有 Git 仓库克隆到 CodeCatalyst 源仓库中，可以考虑改为创建一个空仓库。在您向其中添加内容 CodeCatalyst 之前，该存储库将无法在中使用，只需几个简单的 Git 命令即可完成此操作。或者，您可以直接从 CodeCatalyst 控制台向空存储库添加内容。或者，您可以在支持的 Git 存储库提供程序中链接源存储库。有关更多信息，请参阅 [链接源存储库](source-repositories-link.md)。

**创建源存储库**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 导航到您的项目。

1. 在导航窗格中，选择**代码**，然后选择**源存储库**。

1. 选择**添加存储库**，然后选择**创建存储库**。

1. 在**存储库名称**中，输入存储库的名称。在本指南中，我们使用*codecatalyst-source-repository*，但您可以选择其他名称。一个项目中的存储库名称必须唯一。有关存储库名称要求的更多信息，请参阅[中的源存储库配额 CodeCatalyst](source-quotas.md)。

1. （可选）在**描述**中，添加对存储库的描述，这有助于项目中的其他用户了解存储库的用途。

1. 选择**创建存储库（默认）**。此选项会创建一个存储库，其中包含默认分支和 README.md 文件。与空存储库不同，您可以在创建此存储库后立即使用它。

1. 在**默认分支**中，除非您有理由选择其他名称，否则请将该名称保留为 *main*。本指南中的示例对于默认分支均使用名称 *main*。

1. （可选）为您计划推送的代码类型添加一个 `.gitignore` 文件。

1. 选择**创建**。
**注意**  
CodeCatalyst 在创建存储库时将`README.md`文件添加到存储库中。 CodeCatalyst还会在名为 **main** 的默认分支中为存储库创建初始提交。您可以编辑或删除 README.md 文件，但无法删除默认分支。<a name="source-repositories-create-empty"></a>

**创建空的源存储库**

1. 在 CodeCatalyst 控制台中，导航到要在其中创建空存储库的项目。

1. 在项目的摘要页面上，在**源存储库**中，选择**添加存储库**，然后选择**创建存储库**。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。选择**添加存储库**，然后选择**创建存储库**。

1. 在**存储库名称**中，输入存储库的名称。在本指南中，我们使用*codecatalyst-source-repository*，但您可以选择其他名称。一个项目中的存储库名称必须唯一。有关存储库名称要求的更多信息，请参阅[中的源存储库配额 CodeCatalyst](source-quotas.md)。

1. （可选）在**描述**中，添加对存储库的描述，这有助于项目中的其他用户了解存储库的用途。

1. 选择**创建空存储库**，然后选择**创建**。

# 将现有 Git 存储库克隆到源存储库中
<a name="source-repositories-add-existing"></a>

您可以将现有 Git 存储库克隆到 Amazon 中的空源存储库 CodeCatalyst。这是一种快速入门的方法，可以快速开始 CodeCatalyst 使用以前托管在另一个 Git 存储库提供程序中的代码。您可以通过创建镜像克隆然后将镜像推送到来克隆存储库的内容 CodeCatalyst。或者，如果您有想要添加内容的存储库的本地存储库 CodeCatalyst，则可以将 CodeCatalyst 源存储库作为另一个远程存储库添加到本地存储库，然后推送到空源存储库。这两种方法同样有效。使用镜像克隆不仅能映射分支，还能映射所有引用。这是一种在中创建存储库工作副本的简单而干净的方法 CodeCatalyst。向指向空 CodeCatalyst 源存储库的本地存储库添加远程存储库会将仓库内容添加到 CodeCatalyst，但它也允许您从本地存储库推送到 CodeCatalyst 源存储库和原始 Git 远程存储库。如果您想在不同的远程存储库中维护代码，这可能很有用，但如果其他开发人员只向其中一个远程存储库提交代码，则可能会导致冲突。

以下过程使用基本的 Git 命令来完成这项任务。在 Git 中完成任务有很多方法，包括克隆。有关更多信息，请参阅 [Git 文档](https://git-scm.com/docs/git-clone)。

**重要**  
必须 CodeCatalyst 先在中创建一个空存储库，然后才能将内容克隆到该存储库。您还必须拥有个人访问令牌。有关更多信息，请参阅[创建空的源存储库](source-repositories-create.md#source-repositories-create-empty)和[创建个人访问令牌](source-setting-up.md#source-setting-up-pat)。<a name="source-repositories-clone-exisitng-git-mirror"></a>

**用于`git clone --mirror`将现有 Git 存储库克隆到 CodeCatalyst**

1. 在 CodeCatalyst 控制台中，导航到您在其中创建空存储库的项目。

1. 在项目的摘要页面上，从列表中选择空存储库，然后选择**查看存储库**。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。从项目的源存储库列表中选择空存储库的名称。

1. 复制空存储库的 HTTPS 克隆 URL。您在推送镜像克隆时需要此 URL。例如，如果您在 ExampleCorp 空间中为 MyExampleProject 项目 MyExampleRepo 中的源存储库命名，而您的用户名为 LiJuan，则您的克隆 URL 可能如下所示：

   ```
   https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo
   ```

1. 在命令行或终端窗口中，使用`git clone --mirror`命令创建要克隆到的 Git 存储库的镜像克隆 CodeCatalyst。例如，如果要在中创建 codetalyst-blueprints 存储库的镜像克隆 GitHub，则需要输入以下命令：

   ```
   git clone --mirror https://github.com/aws/codecatalyst-blueprints.git
   ```

1. 切换到您执行克隆操作的目录。

   ```
   cd codecatalyst-blueprints.git
   ```

1. 运行**git push**命令，指定目标 CodeCatalyst 源存储库的 URL 和名称以及**--all**选项。（这是您在步骤 3 中复制的 URL。） 例如：

   ```
   git push https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo --all
   ```<a name="source-repositories-clone-local-repo"></a>

**添加远程存储库并将本地存储库推送到 CodeCatalyst**

1. 在 CodeCatalyst 控制台中，导航到您在其中创建空存储库的项目。

1. 在项目的摘要页面上，从列表中选择空存储库，然后选择**查看存储库**。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。从项目的源存储库列表中选择空存储库的名称。

1. 复制空存储库的 HTTPS 克隆 URL。您在推送镜像克隆时需要此 URL。例如，如果您在 ExampleCorp 空间中为 MyExampleProject 项目 MyExampleRepo 中的源存储库命名，而您的用户名为 LiJuan，则您的克隆 URL 可能如下所示：

   ```
   https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo
   ```

1. 在命令行或终端窗口中，将目录更改为要推送到 CodeCatalyst的本地存储库。

1. 运行 git remote -v 命令查看本地存储库的现有远程存储库。例如，如果您要在美国东部（俄亥俄州）区域克隆名为 **MyDemoRepo** 的 AWS CodeCommit 存储库的本地存储库，命令输出可能如下所示：

   ```
   origin  https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch)
   origin  https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (push)
   ```

   如果您想继续使用存储库，可复制远程 URL。

1. 使用`git remote remove`命令移除 CodeCommit 存储库以获取 URLs Origin 并推送：

   ```
   git remote remove origin
   ```

1. 使用 **git remot** e add 命令将 CodeCatalyst 源存储库 URL 添加为本地存储库的远程获取和推送。例如：

   ```
   git remote add origin https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo
   ```

   这会将 CodeCommit 仓库推送 URL 替换为 CodeCatalyst 源存储库 URL，但不会更改获取 URL。因此，如果你再次运行 git remote-v 命令，你会看到你现在正在从 CodeCommit 远程存储库中提取（获取）代码，但你被配置为将更改从本地存储库推送到 CodeCatalyst 源存储库：

   ```
   origin  https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch)
   origin  https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo (push)
   ```

   如果您想使用以下`git remote set-url`命令推送到两个存储库，则可以选择添加回 CodeCommit 远程 URL：

   ```
   git remote set-url --add --push origin https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo
   ```

1. 运行 `git push` 命令将本地存储库推送到所有已配置的推送远程存储库。或者，运行 **git push -u -origin** 命令，指定 **--all** 选项将本地存储库同时推送到两个存储库。例如：

   ```
   git push -u -origin --all
   ```

**提示**  
根据 Git 版本的不同，--all 可能无法将本地存储库的所有分支推送到空存储库。您可能需要分别签出和推送每个分支。

# 链接源存储库
<a name="source-repositories-link"></a>

在将源存储库链接到项目时，如果您的空间安装了该 CodeCatalyst 扩展插件，则可以包括具有托管存储库的服务扩展程序的存储库。只有具有空间管理员角色的用户才能安装扩展。一旦安装了扩展，就可以链接到为该扩展访问而配置的存储库。有关更多信息，请参阅[在空间中安装扩展](install-extension.md)或[在中关联 GitHub 存储库、Bitbucket 存储库、 GitLab 项目存储库和 Jira 项目 CodeCatalyst](extensions-link.md)。

**重要**  
安装存储库扩展后，您链接到的任何存储库都 CodeCatalyst 将对其代码进行索引和存储。 CodeCatalyst这将使代码可在中 CodeCatalyst搜索。要更好地了解在中使用链接存储库时代码的数据保护 CodeCatalyst，请参阅 *Amazon CodeCatalyst 用户指南*中的[数据保护](https://docs.aws.amazon.com/codecatalyst/latest/userguide/data-protection.html)。

您只能将存储库链接到空间中的一个项目。您无法链接已存档的存储库。虽然你可以链接一个空存储库，但在你使用创建默认分支的初始提交对其进行初始化 CodeCatalyst 之前，你不能在中使用它。此外：
+  GitHub 存储库、Bitbucket 存储库或 GitLab 项目存储库只能链接到空间中的一个 CodeCatalyst 项目。
+ 您不能将空仓库或已存档 GitHub 存储库、Bitbucket 存储库或 GitLab 项目存储库与 CodeCatalyst 项目一起使用。
+ 您不能链接与 GitLab 项目中 GitHub 仓库同名的存储库、Bitbucket 存储库或 CodeCatalyst 项目存储库。
+ **GitHub 存储库**扩展与 GitHub 企业服务器存储库不兼容。
+ **Bitbucket 存储库**扩展与 Bitbucket Data Center 存储库不兼容。
+ **GitLab 存储库**扩展与 GitLab 自行管理的项目存储库不兼容。
+ 您无法在已链接存储库中使用**为我编写描述**或**汇总评论**功能。这些功能仅在中的拉取请求中可用 CodeCatalyst。

虽然您可以作为**贡献者**链接 GitHub 存储库、Bitbucket 存储库或 GitLab 项目仓库，但您只能以 **Space 管理员或**项目**管理员**的身份取消第三方仓库的链接。有关更多信息，请参阅 [取消关联 GitHub 存储库、Bitbucket 存储库、 GitLab 项目存储库和 Jira 项目 CodeCatalyst](extensions-unlink.md)。

**重要**  
CodeCatalyst 不支持检测链接仓库的默认分支中的更改。要更改链接存储库的默认分支，必须先取消其与该分支的链接 CodeCatalyst，更改默认分支，然后再次进行链接。有关更多信息，请参阅 [在中关联 GitHub 存储库、Bitbucket 存储库、 GitLab 项目存储库和 Jira 项目 CodeCatalyst](extensions-link.md)。  
作为最佳实践，在链接存储库之前，请始终确保您拥有最新版本的扩展。

**链接源存储库**

1. 导航到要链接存储库的项目。
**注意**  
在链接存储库之前，具有空间管理员角色的用户必须首先为托管存储库的提供程序安装扩展。有关更多信息，请参阅 [在空间中安装扩展](install-extension.md)。

1. 在导航窗格中，选择**代码**，然后选择**源存储库**。

1. 选择**添加存储库**，然后选择**链接存储库**。

1. 从**存储库提供程序**下拉菜单中，选择以下第三方存储库提供商之一：**GitHub**或 **Bitbucket**。

1. 根据您已选择链接的第三方存储库提供程序，执行下列操作之一：
   + **GitHub 存储库**：链接存储 GitHub 库。

     1. 从**GitHub 账户**下拉菜单中，选择包含要关联的存储库的 GitHub 账户。

     1. 从**GitHub 存储库**下拉菜单中，选择要关联 CodeCatalyst 项目的 GitHub 账户。

     1. （可选）如果您在 GitHub 存储库列表中看不到存储库，则可能未在的 Amazon CodeCatalyst 应用程序中将其配置为可以访问存储库 GitHub。您可以配置可在关联账户 CodeCatalyst 中使用哪些 GitHub 存储库。

        1. 导航到您的[GitHub](https://github.com/)帐户，选择 “**设置”**，然后选择 “**应用程序**”。

        1. 在 “**已安装的 GitHub 应用程序**” 选项卡中，选择 Amazon CodeCatalyst 应用程序的**配置**。

        1. 执行以下任一操作来配置要链接的 GitHub 存储库的访问权限 CodeCatalyst：
           + 要提供对所有当前和未来存储库的访问权限，请选择**所有存储库**。
           + 要提供对特定存储库的访问权限，**请选择 “仅选择存储****库”，选择 “**选择存储库” 下拉列表，然后选择要允许链接的存储库 CodeCatalyst。
   + **Bitbucket 存储库**：链接 Bitbucket 存储库。

     1. 从 **Bitbucket 工作区**下拉菜单中，选择包含要链接的存储库的 Bitbucket 工作区。

     1. 从 **Bitbucket 存储库**下拉菜单中，选择要关联项目的 Bitbucket 存储库。 CodeCatalyst 
**提示**  
如果存储库的名称显示为灰色，则无法链接该存储库，因为它已经链接到 Amazon CodeCatalyst 中的另一个项目。

1. 选择**链接**。

如果您不想再在中使用 GitHub 存储库、Bitbucket 存储库或 GitLab 项目存储库 CodeCatalyst，则可以取消其与项目的链接。 CodeCatalyst 解除存储库的链接后，该存储库中的事件将无法启动工作流程运行，并且您将无法在 CodeCatalyst 开发环境中使用该存储库。有关更多信息，请参阅 [取消关联 GitHub 存储库、Bitbucket 存储库、 GitLab 项目存储库和 Jira 项目 CodeCatalyst](extensions-unlink.md)。

# 查看源存储库
<a name="source-repositories-view"></a>

您可以在 Amazon 中查看与项目关联的源存储库 CodeCatalyst。对于中的源存储库 CodeCatalyst，存储库的概述页面提供了该存储库中信息和活动的快速概述，包括：
+ 存储库的描述（如果有）
+ 存储库中的分支数量
+ 存储库的未处理拉取请求数量
+ 存储库的相关工作流数量
+ 默认分支或您选择的分支中的文件和文件夹
+ 显示分支的最后一次提交的标题、作者和日期
+ 以 Markdown 格式呈现的 README.md 文件的内容（如果包含任何 README.md 文件）

该页面还提供指向存储库的提交、分支和拉取请求的链接，以及打开、查看和编辑单个文件的快速方法。

**注意**  
您无法在 CodeCatalyst 控制台中查看有关链接仓库的这些信息。要查看链接的存储库的相关信息，请在存储库列表中选择链接，在托管该存储库的服务中打开该存储库。

**导航到项目的源存储库**

1. 导航到您的项目，然后执行下列操作之一：
   + 在项目的摘要页面上，从列表中选择所需的存储库，然后选择**查看存储库**。
   + 在导航窗格中，选择**代码**，然后选择**源存储库**。在**源存储库**中，从列表中选择存储库的名称。您可以通过在筛选栏中键入部分存储库名称，筛选存储库列表。

1. 在存储库主页上，查看存储库的内容以及有关关联资源的信息，例如拉取请求和工作流的数量。默认情况下，会显示默认分支的内容。您可通过选择此下拉列表中的其他分支来更改视图。

**提示**  
您还可以通过在项目摘要页面中选择**查看项目代码**来快速导航到项目的存储库。

# 编辑源存储库的设置
<a name="source-repositories-edit"></a>

您可以管理存储库的设置，包括编辑存储库的描述、选择默认分支、创建和管理分支规则，以及创建和管理中拉取请求的批准规则 CodeCatalyst。这有助于项目成员了解存储库的用途，并帮助您执行团队使用的最佳实践和流程。

**注意**  
无法编辑源存储库的名称。  
您无法在中编辑链接仓库的名称、描述或其他信息 CodeCatalyst。要修改有关链接的存储库的信息，必须在托管链接的存储库的提供程序中对其进行编辑。有关更多信息，请参阅托管链接存储库的服务的文档。<a name="source-repositories-edit-details"></a>

**编辑存储库的设置**

1. 在 CodeCatalyst 控制台中，导航到包含要编辑其设置的源存储库的项目。

1. 在项目的摘要页面上，从列表中选择所需的存储库，然后选择**查看存储库**。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。从项目的源存储库列表中选择存储库的名称。

1. 在存储库的概述页面上，选择**更多**，然后选择**管理设置**。

1. 执行以下一个或多个操作：
   + 编辑存储库描述，然后选择**保存**。
   + 要更改存储库的默认分支，请在**默认分支**中选择**编辑**。有关更多信息，请参阅 [管理存储库的默认分支](source-branches-default-branch.md)。
   + 要添加、移除或更改关于哪些项目角色有权限在分支中执行某些操作的规则，请在**分支规则**中选择**编辑**。有关更多信息，请参阅 [使用分支规则管理分支允许的操作](source-branches-branch-rules.md)。
   + 要添加、移除或更改用于将拉取请求合并到分支的审批规则，请在**审批规则**中选择**编辑**。有关更多信息，请参阅 [管理将拉取请求与审批规则合并的要求](source-pull-requests-approval-rules.md)。

# 克隆源存储库
<a name="source-repositories-clone"></a>

要有效处理源存储库中的多个文件、分支和提交，可将源存储库克隆到本地计算机，然后使用 Git 客户端或集成式开发环境（IDE）进行更改。提交您的更改并将其推送到源存储库，以便使用议题和拉取请求等 CodeCatalyst 功能。您还可以选择创建一个开发环境来处理代码。创建开发环境会自动将您指定的存储库和分支克隆到开发环境中。

**注意**  
您无法在 CodeCatalyst 控制台中克隆链接存储库，也无法为其创建开发环境。要在本地克隆链接的存储库，请在存储库列表中选择链接，在托管该存储库的服务中打开该存储库，然后克隆它。有关更多信息，请参阅托管链接存储库的服务的文档。

**从源存储库创建开发环境**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 在导航窗格中，选择**代码**，然后选择**源存储库**。

1. 选择要在其中处理代码的源存储库。

1. 选择**创建开发环境**。

1. 从下拉菜单中选择受支持的 IDE。请参阅[开发环境支持的集成式开发环境](devenvironment-create.md#devenvironment-supported-ide)了解更多信息。

1. 请执行以下操作之一：
   + 选择**在现有分支中工作**，然后从**现有分支**下拉菜单中选择一个分支。
   + 选择**在新分支中工作**，在**分支名称**字段中输入分支名称，然后从**创建分支的来源**下拉菜单中选择要从中创建新分支的分支。

1. 还可选择为开发环境添加名称或编辑其配置。

1. 选择**创建**。

**克隆源存储库**

1. 导航到您的项目。

1. 在项目的摘要页面上，从列表中选择所需的存储库，然后选择**查看存储库**。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。从项目的源存储库列表中选择存储库的名称。您可以通过在筛选栏中键入部分存储库名称，筛选存储库列表。

1. 

1. 选择**克隆存储库**。复制存储库的克隆 URL。
**注意**  
如果您没有个人访问令牌（PAT），请选择**创建令牌**。复制令牌并将其保存在安全的位置。当 Git 客户端或集成式开发环境（IDE）提示输入密码时，您将使用此 PAT。

1. 请执行以下操作之一：
   + 要将存储库克隆到本地计算机，请打开终端或命令行并运行 **git clone** 命令，在命令后面加上克隆 URL。例如：

     ```
     git clone https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo
     ```

     提示输入密码时，请粘贴之前保存的 PAT。
**注意**  
如果操作系统提供凭证管理功能或已安装凭证管理系统，则只需提供一次 PAT。否则，您可能需要为每次 Git 操作提供 PAT。作为最佳实践，请确保您的凭证管理系统能安全地存储您的 PAT。克隆 URL 字符串中不要包含 PAT。
   + 要使用 IDE 克隆存储库，请按照 IDE 的文档进行操作。选择克隆 Git 存储库并提供 URL 的选项。提示输入密码时，请提供 PAT。

# 删除源存储库
<a name="source-repositories-delete"></a>

如果不再需要 Amazon CodeCatalyst 项目的源存储库，则可以将其删除。删除源存储库也会删除存储在存储库中的所有项目信息。如果有任何工作流依赖于源存储库，则在删除该存储库后，这些工作流将从项目工作流列表中删除。引用源存储库的事务不会被删除或更改，但一旦删除源存储库，添加到事务中的任何指向源存储库的链接都将失效。

**重要**  
删除源存储库的操作无法撤销。删除源存储库后，就无法再克隆它、从中提取数据或向其推送数据。删除源存储库不会删除该存储库的任何本地副本（本地存储库）。要删除本地存储库，请使用您的本地计算机的目录和文件管理工具。

**注意**  
您无法在 CodeCatalyst 控制台中删除链接的存储库。要删除链接的存储库，请在存储库列表中选择链接，在托管该存储库的服务中打开该存储库，然后删除它。有关更多信息，请参阅托管链接存储库的服务的文档。  
要从项目中移除链接的存储库，请参阅[取消关联 GitHub 存储库、Bitbucket 存储库、 GitLab 项目存储库和 Jira 项目 CodeCatalyst](extensions-unlink.md)。

**删除源存储库**

1. 导航到包含要删除的源存储库的项目。

1. 在项目的摘要页面上，从列表中选择所需的存储库，然后选择**查看存储库**。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。从项目的源存储库列表中选择存储库的名称。

1. 在存储库主页上，选择**更多**，选择**管理设置**，然后选择**删除存储库**。

1. 查看分支、拉取请求和相关工作流信息，以确保不会删除仍在使用或有未完成工作的存储库。如果要继续，请键入 **delete**，然后选择**删除**。

# 使用 Amazon 中的分支来整理源代码 CodeCatalyst
<a name="source-branches"></a>

在 Git 中，分支是指向提交的指针或引用。在开发中，它们是组织工作的便捷方式。您可以使用分支来分离新的或不同版本文件的工作，而不影响其他分支中的工作。您可以使用分支来开发新功能、存储项目的特定版本等。您可以为源存储库中的分支配置规则，将分支上的某些操作限制到该项目中的特定角色。

无论您如何创建 CodeCatalyst ，Amazon 中的源存储库都有内容和默认分支。链接存储库可能没有默认分支或内容，但在初始化它们并创建默认分支 CodeCatalyst 之前无法使用。使用蓝图创建项目时， CodeCatalyst 会为该项目创建一个源存储库，其中包含 README.md 文件、示例代码、工作流程定义和其他资源。在不使用蓝图的情况下创建源存储库时，在首次提交时，系统会为您添加一个 README.md 文件，并为您创建一个*默认分支*。该默认分支名为 *main*。此默认分支在用户克隆存储库时被用作本地存储库的基本或默认分支。

**注意**  
您不能删除默认分支。为源存储库创建的第一个分支是该存储库的默认分支。此外，搜索只会显示默认分支的结果。您无法在其他分支中搜索代码。

在中创建存储库 CodeCatalyst 还会创建第一次提交，这将创建一个包含一个 README.md 文件的*默认分支*。该默认分支的名称是 *main*。这是本指南的示例中使用的默认分支名称。

**Topics**
+ [创建分支](source-create-delete-branch.md)
+ [管理存储库的默认分支](source-branches-default-branch.md)
+ [使用分支规则管理分支允许的操作](source-branches-branch-rules.md)
+ [分支的 Git 命令](source-branches-git.md)
+ [查看分支和详细信息](source-branches-view.md)
+ [删除分支](source-branches-delete.md)

# 创建分支
<a name="source-create-delete-branch"></a>

您可以使用 CodeCatalyst 控制台在 CodeCatalyst 存储库中创建分支。其他用户下次从存储库中提取更改时，就能看到您创建的分支。

**提示**  
您还可以在创建开发环境的过程中创建分支来处理您的代码。有关更多信息，请参阅 [创建开发环境](devenvironment-create.md)。

您还可以使用 Git 创建分支。有关更多信息，请参阅 [针对分支的常用 Git 命令](source-branches-git.md#source-branches-git-table)。

**创建分支（控制台）**

1. 在 CodeCatalyst 控制台中，导航到源存储库所在的项目。

1. 从项目的源存储库列表中选择存储库的名称。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。

1. 选择要在其中创建分支的存储库。

1. 在存储库的概述页面上，选择**更多**，然后选择**创建分支**。

1. 输入分支的名称。

1. 选择要从中创建分支的分支，然后选择**创建**。

# 管理存储库的默认分支
<a name="source-branches-default-branch"></a>

您可以在 Amazon 的源存储库中指定哪个*分支用作默认分支* CodeCatalyst。无论您如何创建，其中的所有源存储库 CodeCatalyst 都有内容和默认分支。如果您使用蓝图创建项目，为该项目创建的源存储库中的默认分支将命名为 *main*。默认分支的内容会自动显示在该存储库的概述页面上。

**重要**  
CodeCatalyst 不支持检测链接仓库的默认分支中的更改。要更改链接存储库的默认分支，必须先取消其与该分支的链接 CodeCatalyst，更改默认分支，然后再次进行链接。有关更多信息，请参阅 [在中关联 GitHub 存储库、Bitbucket 存储库、 GitLab 项目存储库和 Jira 项目 CodeCatalyst](extensions-link.md)。  
作为最佳实践，在链接存储库之前，请始终确保您拥有最新版本的扩展。

默认分支的处理方式与源存储库中的所有其他分支略有不同。默认分支的名称旁边有一个特殊的标签，即**默认**。当用户使用 Git 客户端将存储库克隆到本地计算机时，默认分支是用作本地存储库的基础分支或默认分支的分支。默认分支也是创建工作流时用于存储工作流 YAML 文件和事务信息的默认位置。使用 search in 时 CodeCatalyst，仅搜索存储库的默认分支。由于默认分支对项目的许多方面都至关重要，因此您无法删除指定为默认分支的分支。但是，您可以选择使用不同的分支作为默认分支。如果这样做，任何应用于以前默认分支的[分支规则](source-branches-branch-rules.md)都将自动应用于您指定为默认分支的分支。

**注意**  
您必须具有项目管理员角色才能更改 CodeCatalyst 项目中源存储库的默认分支。这不适用于链接的存储库。

**查看和更改存储库的默认分支**

1. 导航到存储库所在的项目。

1. 从项目的源存储库列表中选择存储库的名称。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。

   选择要查看其设置的存储库，包括默认分支。

1. 在存储库的概述页面上，选择**更多**，然后选择**管理设置**。

1. 在**默认分支**中，会显示指定为默认分支的分支名称，并在名称旁边显示一个名为**默认**的标签。在**分支**中，同样的标签也会显示在分支列表中该分支名称的旁边。

1. 要更改默认分支，请选择**编辑**。
**注意**  
您必须在项目中具有项目管理员角色，才能更改默认分支。

1. 从下拉列表中选择要设为默认分支的分支名称，然后选择**保存**。

# 使用分支规则管理分支允许的操作
<a name="source-branches-branch-rules"></a>

创建分支时，根据该角色的权限，允许对该分支执行某些操作。您可以通过配置分支规则来更改特定分支允许执行的操作。分支规则基于用户在项目中的角色。您可以选择对某些预定义操作（如将提交推送到分支）进行限制，使得只有项目中具有特定角色的用户才能执行这些操作。通过限制允许哪些角色执行某些操作，有助于您保护项目中的特定分支。例如，如果配置了一个分支规则，只允许具有**项目管理员**角色的用户合并或推送到该分支，那么在项目中具有其他角色的用户将无法更改该分支中的代码。

您应该仔细考虑为分支创建规则的所有影响。例如，如果您选择限制只有具有**项目管理员**角色的用户才能向分支推送，那么具有**贡献者**角色的用户将无法在该分支中创建或编辑工作流，因为工作流 YAML 存储在该分支中，而这些用户无法提交和推送对 YAML 的更改。最佳做法是，在创建分支规则后对其进行测试，以确保它们不会产生任何预料之外的影响。您还可以将分支规则与拉取请求的审批规则结合使用。有关更多信息，请参阅 [管理将拉取请求与审批规则合并的要求](source-pull-requests-approval-rules.md)。

**注意**  
您必须具有项目管理员角色才能管理 CodeCatalyst 项目中源存储库的分支规则。您无法为链接的存储库创建分支规则。  
您只能创建比角色默认权限更严格的分支规则。您创建的分支规则，不能比用户在项目中的角色所允许的权限更宽松。例如，您不能创建分支规则，来允许具有审阅者角色的用户推送到分支。

应用于源存储库默认分支的分支规则，与应用于其他分支的分支规则在行为上有些不同。应用于默认分支的任何规则，都将自动应用于您指定为默认分支的任何分支。以前被设置为默认分支的分支仍将保留应用于它的规则，只是不再具有防止删除的保护功能。这种保护只适用于当前的默认分支。

分支规则有两种状态：**标准**和**自定义**。**标准**表示允许在分支上执行的操作与用户在分支操作中的角色权限相匹配 CodeCatalyst 的操作。要进一步了解哪些角色拥有哪些权限，请参阅[使用用户角色授予访问权限](ipa-roles.md)。**自定义**表示一个或多个分支中的操作具有特定的角色列表来授予执行该操作的权限，与项目中用户角色授予的默认权限不同。

**注意**  
如果创建了分支规则来限制分支的一个或多个操作，则**删除分支**操作会自动设置为只允许具有项目管理员角色的用户删除该分支。

下表列出了操作以及允许在分支上执行这些操作的角色的默认设置。


**分支操作和角色**  

| **分支操作** |  在未应用分支规则时，允许执行此操作的角色  | 
| --- | --- | 
|  合并到分支（这包括将拉取请求合并到分支）  |  项目管理员、贡献者  | 
|  推送到分支  |  项目管理员、贡献者  | 
|  删除分支  |  项目管理员、贡献者  | 
|  删除分支（默认分支）  |  不允许  | 

 您不能删除分支规则，但可以更新这些规则来允许所有角色在分支上执行该操作，这样实际上就是移除了规则。

**注意**  
您必须具有项目管理员角色才能为 CodeCatalyst 项目中的源存储库配置分支规则。这不适用于链接的存储库。链接存储库不支持中的分支规则 CodeCatalyst。<a name="view-edit-branch-rules"></a>

**查看和编辑存储库的分支规则**

1. 导航到存储库所在的项目。

1. 从项目的源存储库列表中选择存储库的名称。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。

   选择要在其中查看分支规则的存储库。

1. 在存储库的概述页面上，选择**分支**。

1. 在**分支规则**列中，查看存储库中每个分支的规则状态。**标准**表示分支操作规则是在源存储库中创建的任何分支的默认规则，并与项目中授予给这些角色的权限相匹配。**自定义**表示一个或多个分支操作所具备的规则，只允许一组不同的角色执行该分支中的一个或多个操作。

   要查看分支规则的具体内容，请选择要查看的分支旁边的**标准**或**自定义**字样。

1. 要创建或更改分支规则，请选择**管理设置**。在源存储库的设置页面上，在**分支规则**中，选择**编辑**。

1. 在**分支**中，从下拉列表中选择要为其配置规则的分支名称。对于每种允许的操作类型，从下拉列表中选择要允许执行该操作的角色，然后选择**保存**。

# 分支的 Git 命令
<a name="source-branches-git"></a>

您可以使用 Git 创建、管理和删除计算机（本地存储库）或开发环境中的源代码库克隆中的分支，然后提交更改并将其推送到 CodeCatalyst 源存储库（远程存储库）。例如：


**针对分支的常用 Git 命令**  

|  |  | 
| --- |--- |
|  列出本地存储库中的所有分支，并在当前分支旁边显示一个星号 (`*`)。  |  `git branch`  | 
|  将远程存储库中所有现有分支的信息提取到本地存储库。  |  `git fetch`  | 
|  列出本地存储库中的所有分支和本地存储库中的远程跟踪分支。  |  `git branch -a`  | 
|  只列出本地存储库中的远程跟踪分支。  |  `git branch -r`  | 
|  使用指定的分支名称在本地存储库中创建一个分支。在您提交并推送更改之前，此分支不会出现在远程存储库中。  |  `git branch branch-name`  | 
|  使用指定的分支名称在本地存储库中创建一个分支，然后切换到该分支。  |  `git checkout -b branch-name`  | 
|  使用指定的分支名称切换到本地存储库中的另一个分支。  |  `git checkout other-branch-name`  | 
|  使用本地存储库为远程存储库指定的昵称和指定的分支名称，将一个分支从本地存储库推送到远程存储库。同时为本地存储库中的分支设置上游跟踪信息。  |  `git push -u remote-name branch-name`  | 
|  将本地存储库中另一个分支的更改合并到本地存储库中的当前分支。  |  `git merge from-other-branch-name`  | 
|  删除本地存储库中的某个分支，除非其包含尚未合并的作业。  |  `git branch -d branch-name`  | 
|  使用本地存储库为远程存储库指定的昵称和指定的分支名称，删除远程存储库中的一个分支。（注意冒号（`:`）的用法。） 或者，在命令中指定 `--delete`。  | `git push remote-name :branch-name` `git push remote-name --delete branch-name`  | 

有关更多信息，请参阅您的 Git 文档。

# 查看分支和详细信息
<a name="source-branches-view"></a>

您可以在 Amazon CodeCatalyst 控制台中查看有关亚马逊 CodeCatalyst远程分支的信息，包括文件、文件夹和特定分支的最新提交的详细信息。您也可以使用 Git 命令和本地操作系统来查看远程和本地分支的这些信息。<a name="source-branches-view-console"></a>

**查看分支（控制台）**

1. 在 CodeCatalyst 控制台中，导航到包含要在其中查看分支的源存储库的项目。选择**代码**，选择**源存储库**，然后选择源存储库。

1. 从项目的源存储库列表中选择存储库的名称。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。

   选择要查看其中分支的存储库。

1. 此时将显示存储库的默认分支。您可以看到分支中的文件和文件夹列表、最新提交的信息，以及 README.md 文件的内容（如果分支中存在）。要查看不同分支的信息，请从存储库分支的下拉列表中选择该分支。

1. 要查看存储库的所有分支，请选择**查看全部**。分支页面显示每个分支的名称、最新提交和规则等信息。

有关如何使用 Git 和操作系统查看分支和详细信息的信息，请参阅[针对分支的常用 Git 命令](source-branches-git.md#source-branches-git-table)、Git 文档和操作系统文档。

# 删除分支
<a name="source-branches-delete"></a>

如果您不再需要某个分支，可以删除它。例如，如果您将一个有功能更改的分支合并到默认分支中，而该功能已经发布，那么您可能想删除原来的功能分支，因为这些更改已经是默认分支的一部分。保持较少的分支数量让用户可以更容易找到包含他们想要处理的更改的分支。删除分支后，该分支的副本会保留在本地计算机上的存储库克隆中，直到用户提取并同步这些更改。<a name="source-branch-delete"></a>

**删除分支（控制台）**

1. 导航到存储库所在的项目。

1. 从项目的源存储库列表中选择存储库的名称。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。

   选择要删除其中分支的存储库。

1. 在存储库的概述页面上，选择分支名称旁边的下拉选择器，然后选择**查看全部**。

1. 选择要删除的分支，然后选择**删除分支**。
**注意**  
您不能删除存储库的默认分支。

1. 您将看到确认对话框。其中显示与分支相关联的版本库、未处理的拉取请求数量和工作流数量。

1. 要确认删除该分支，请在文本框中键入 **delete**，然后选择**删除**。

您也可以使用 Git 删除分支。有关更多信息，请参阅 [针对分支的常用 Git 命令](source-branches-git.md#source-branches-git-table)。

# 在 Amazon 中管理源代码文件 CodeCatalyst
<a name="source-files"></a>

在 Amazon 中 CodeCatalyst，文件是一种受版本控制的独立信息，可供您和存储文件的源存储库和分支的其他用户使用。您可以使用目录结构来组织存储库文件。 CodeCatalyst自动跟踪对文件的每一次提交的更改。您可以在不同的存储库分支中存储文件的不同版本。

要在源存储库中添加或编辑多个文件，您可以使用 Git 客户端、开发环境或集成式开发环境（IDE）。要添加或编辑单个文件，您可以使用 CodeCatalyst 控制台。

**Topics**
+ [创建或添加文件](source-files-create.md)
+ [查看文件](source-files-view.md)
+ [查看文件更改历史记录](source-files-view-history.md)
+ [编辑文件](source-files-edit.md)
+ [重命名或删除文件](source-files-delete.md)

# 创建或添加文件
<a name="source-files-create"></a>

要创建文件并将其添加到源存储库，您可以使用 Amazon CodeCatalyst 控制台、开发环境、互联集成开发环境 (IDE) 或 Git 客户端。 CodeCatalyst 控制台包括用于创建文件的代码编辑器。使用该编辑器可方便地在存储库的某个分支中创建或编辑简单文件，如 README.md 文件。处理多个文件时，可以考虑[创建开发环境](devenvironment-create.md)。

**从源存储库创建开发环境**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 在导航窗格中，选择**代码**，然后选择**源存储库**。

1. 选择要在其中处理代码的源存储库。

1. 选择**创建开发环境**。

1. 从下拉菜单中选择受支持的 IDE。请参阅[开发环境支持的集成式开发环境](devenvironment-create.md#devenvironment-supported-ide)了解更多信息。

1. 请执行以下操作之一：
   + 选择**在现有分支中工作**，然后从**现有分支**下拉菜单中选择一个分支。
   + 选择**在新分支中工作**，在**分支名称**字段中输入分支名称，然后从**创建分支的来源**下拉菜单中选择要从中创建新分支的分支。

1. 还可选择为开发环境添加名称或编辑其配置。

1. 选择**创建**。

**在 CodeCatalyst 控制台中创建文件**

1. 导航到要在其中创建文件的项目。有关如何导航到存储库的更多信息，请参阅[查看源存储库](source-repositories-view.md)。

1. 从项目的源存储库列表中选择存储库的名称。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。

   选择要在其中创建文件的存储库。

1. （可选）如果要在不同于默认分支的分支中创建文件，请选择要在其中创建文件的分支。

1. 选择**创建文件**。

1. 在**文件名**中输入文件的名称。在编辑器中添加文件内容。
**提示**  
如果要在分支根目录的子文件夹或子目录中创建文件，请将该结构作为文件名的一部分。

   对更改感到满意后，选择**提交**。

1. 在**文件名**中，查看文件名并根据需要进行更改。（可选）在**分支**中，从可用的分支列表中选择要在其中创建文件的分支。在**提交消息**中，可选择输入简短但翔实的描述，说明做出此更改的原因。这将显示为将文件添加到源存储库的提交的基本提交信息。

1. 选择**提交**，提交并将文件推送到源存储库。

您还可以通过将源存储库克隆到本地计算机，然后使用 Git 客户端或互联集成式开发环境（IDE）来推送文件和更改，从而将文件添加到源存储库中。

**注意**  
如果要添加 Git 子模块，您必须使用 Git 客户端或开发环境并运行 **git submodule add** 命令。您无法在 CodeCatalyst 控制台中添加或查看 Git 子模块，也无法在拉取请求中查看 Git 子模块的差异。有关 Git 子模块的更多信息，请参阅 [Git 文档](https://git-scm.com/book/en/v2/Git-Tools-Submodules)。<a name="source-files-add-git"></a>

**使用 Git 客户端或互联集成式开发环境（IDE）添加文件**

1. 将源存储库克隆到本地计算机。有关更多信息，请参阅 [克隆源存储库](source-repositories-clone.md)。

1. 在本地存储库中创建文件，或将文件复制到本地存储库中。

1. 执行以下操作之一，创建并推送提交：
   + 如果您使用的是 Git 客户端，请在终端或命令行下运行 **git add** 命令，指定要添加的文件的名称。或者，要添加所有已添加或更改的文件，请运行 **git add** 命令，然后加上单句点或双句点，以指示您是要包含当前目录级别的所有更改（单句点），还是要包含当前目录及所有子目录的所有更改（双句点）。要提交更改，请运行 **git commit -m** 命令并提供提交消息。要将您的更改推送到中的源存储库 CodeCatalyst，请运行**git push**。有关 Git 命令的更多信息，请参阅 Git 文档和[分支的 Git 命令](source-branches-git.md)。
   + 如果您使用的是开发环境或 IDE，请在 IDE 中创建文件和添加文件，然后提交并推送您的更改。有关更多信息，请参阅[使用开发环境编写和修改代码 CodeCatalyst使用开发环境编写和修改代码](devenvironment.md)或 IDE 文档。

# 查看文件
<a name="source-files-view"></a>

您可以在 Amazon CodeCatalyst 控制台中查看源存储库中的文件。您可以查看默认分支和任何其他分支中的文件。文件内容可能因您选择查看的分支而异。

**在 CodeCatalyst 控制台中查看文件**

1. 导航到要在其中查看文件的项目。有关更多信息，请参阅 [查看源存储库](source-repositories-view.md)。

1. 

   从项目的源存储库列表中选择存储库的名称。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。

   选择要查看其中文件的存储库。

1. 此时将显示默认分支的文件和文件夹列表。文件用纸张图标表示，文件夹用文件夹图标表示。

1. 执行以下任一操作：
   + 要查看不同分支中的文件和文件夹，请从分支列表中选择该分支。
   + 要展开文件夹，请从列表中选择该文件夹。

1. 要查看特定文件的内容，请从列表中选择该文件。该文件的内容将显示在分支中。要查看不同分支中的文件内容，请从分支选择器中选择所需的分支。
**提示**  
查看文件内容时，可以从**查看文件**中选择其他文件进行查看。要编辑文件，请选择**编辑**。

您可以在控制台中查看多个文件。您还可以使用 Git 客户端或集成式开发环境（IDE），查看已克隆到本地计算机的文件。有关更多信息，请参阅 Git 客户端或 IDE 的文档。

**注意**  
您无法在 CodeCatalyst 控制台中查看 Git 子模块。有关 Git 子模块的更多信息，请参阅 [Git 文档](https://git-scm.com/book/en/v2/Git-Tools-Submodules)。

# 查看文件更改历史记录
<a name="source-files-view-history"></a>

您可以在 Amazon CodeCatalyst 控制台中查看源存储库中文件的更改历史记录。这有助于您了解在选择查看文件历史记录的分支上，不同提交对文件所做的更改。例如，如果查看源存储库的 **main** 分支中 **readme.md** 文件的更改历史记录，就会看到该分支中包含该文件更改的提交的列表。

**注意**  
您无法在 CodeCatalyst 控制台中查看链接存储库中文件的历史记录。<a name="source-files-view-file-history-console"></a>

# 在 CodeCatalyst 控制台中查看文件的历史记录
<a name="source-files-view-file-history-console"></a>

1. 导航到要查看其中文件历史记录的项目。有关更多信息，请参阅 [查看源存储库](source-repositories-view.md)。

1. 从项目的源存储库列表中选择存储库的名称。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。

1. 选择要在其中查看文件历史记录的存储库。选择要在其中查看文件历史记录的分支，然后从列表中选择文件。选择 **View history (查看历史记录)**。

1. 查看指定分支中包含对该文件更改的提交的列表。要查看特定提交中包含的更改详细信息，请在列表中选择该提交的提交消息。此时显示该提交与其父提交之间的差异。

1. 要查看另一个分支中文件的更改历史记录，请使用分支选择器将视图切换到该分支，从文件列表中选择文件，然后选择**查看历史记录**。

**注意**  
您无法在 CodeCatalyst 控制台中查看 Git 子模块的更改历史记录。有关 Git 子模块的更多信息，请参阅 [Git 文档](https://git-scm.com/book/en/v2/Git-Tools-Submodules)。

# 编辑文件
<a name="source-files-edit"></a>

您可以在 Amazon CodeCatalyst 控制台中编辑单个文件。要同时编辑多个文件，您可以创建一个开发环境或者克隆存储库，然后使用 Git 客户端或集成式开发环境（IDE）进行更改。有关更多信息，请参阅 [使用开发环境编写和修改代码 CodeCatalyst使用开发环境编写和修改代码](devenvironment.md)或 [克隆源存储库](source-repositories-clone.md)。

**在 CodeCatalyst 控制台中编辑文件**

1. 导航到要在其中编辑文件的项目。有关如何导航到存储库的更多信息，请参阅[查看源存储库](source-repositories-view.md)。

1. 选择要编辑其中文件的存储库。选择**查看分支**，然后选择要在其中工作的分支。从该分支的文件和文件夹列表中选择文件。

   文件内容将显示出来。

1. 选择**编辑**。

1. 在编辑器中，编辑文件内容，然后选择**提交**。（可选）在**提交更改**中，在**提交消息**中添加有关更改的更多信息。对更改感到满意后，选择**提交**。

# 重命名或删除文件
<a name="source-files-delete"></a>

您可以在开发环境、本地计算机或集成式开发环境（IDE）中重命名或删除文件。重命名或删除文件后，提交并将这些更改推送到源存储库。您无法在 Amazon CodeCatalyst 控制台中重命名或删除文件。

# 在 Amazon 中使用拉取请求查看代码 CodeCatalyst
<a name="source-pull-requests"></a>

拉取请求是您和其他项目成员用于审查、注释和合并分支间的代码更改的主要方式。您可以使用拉取请求来协同审查代码更改，包括次要的更改或修复、主要功能添加或已发布软件的新版本。如果您使用事务来跟踪项目工作，您可以将特定事务与拉取请求相关联，以便于您跟踪拉取请求中的代码更改处理了哪些事务。当您创建、更新、评论、合并或关闭拉取请求时，系统会自动向拉取请求的作者以及该拉取请求的任何必需或可选的审阅者发送一封电子邮件。

**提示**  
您可以在个人资料中配置您将收到哪些拉取请求事件的相关电子邮件。有关更多信息，请参阅 [从 CodeCatalyst 发送 Slack 和电子邮件通知](notifications-manage.md)。

拉取请求需要在源存储库中建立两个分支：一个是源分支，其中包含您希望审查的代码；另一个是目标分支，您希望在其中合并已审查的代码。源分支包含 AFTER 提交，该提交包含要合并到目标分支中的更改。目标分支包含 BEFORE 提交，表示代码在拉取请求分支合并到目标分支中之前的状态。

**注意**  
在创建拉取请求时，显示的差异是源分支最新块与目标分支最新块之间的差异。创建拉取请求后，显示的差异将是您选择的拉取请求修订版与创建拉取请求时目标分支最新块的提交之间的差异。有关 Git 中的差异和合并基础的更多信息，请参阅 Git 文档[git-merge-base](https://git-scm.com/docs/git-merge-base)中的。

虽然拉取请求是为特定源存储库和分支创建的，但作为项目工作的一部分，您可以创建、查看、审查和关闭拉取请求。您不必查看源存储库就能查看和处理拉取请求。创建拉取请求时，拉取请求状态会设置为 **Open**。拉取请求将一直处于打开状态，直到您在 CodeCatalyst 控制台中将其合并（将状态更改为 “**已合并**”）或将其关闭（将其状态更改为 “**已关闭**”）。

代码通过审查后，您可以通过以下几种方式之一更改拉取请求状态：
+ 在 CodeCatalyst 控制台中合并拉取请求。拉取请求源分支中的代码将被合并到目标分支中。拉取请求状态将变为**已合并**。无法改回 **Open** 状态。
+ 在本地合并分支并推送您的更改，然后在 CodeCatalyst 控制台中关闭拉取请求。
+ 使用 CodeCatalyst 控制台关闭拉取请求而不进行合并。这会将状态更改为**已关闭**，但不会将代码从源分支合并到目标分支。

在创建拉取请求之前，请：
+ 将要审查的代码更改提交和推送至一个分支（源分支）。
+ 为您的项目设置通知，这样其他用户就能收到您创建拉取请求时运行的任何工作流的相关通知。（此步骤为可选步骤，但建议使用。）

**Topics**
+ [创建拉取请求](pull-requests-create.md)
+ [查看拉取请求](pull-requests-view.md)
+ [管理将拉取请求与审批规则合并的要求](source-pull-requests-approval-rules.md)
+ [审核拉取请求](pull-requests-review.md)
+ [更新拉取请求](pull-requests-update.md)
+ [合并拉取请求](pull-requests-merge.md)
+ [关闭拉取请求](pull-requests-close.md)

# 创建拉取请求
<a name="pull-requests-create"></a>

创建拉取请求有助于在您将代码更改合并到另一分支之前，让其他用户查看和审核您所做的更改。首先，您需要为代码更改创建一个分支，这称作拉取请求的源分支。提交更改并将其推送到存储库后，您可以创建一个拉取请求来将源分支的内容与目标分支的内容进行比较。

您可以在 Amazon CodeCatalyst 控制台中从特定分支、拉取请求页面或项目概述创建拉取请求。从特定分支创建拉取请求会自动在拉取请求创建页面上提供存储库名称和源分支。创建一个拉取请求时，您将自动收到有关该拉取请求的任何更新以及拉取请求的合并或关闭时间的电子邮件。

**注意**  
在创建拉取请求时，显示的差异是源分支最新块与目标分支最新块之间的差异。创建拉取请求后，显示的差异将是您选择的拉取请求修订版与创建拉取请求时目标分支最新块的提交之间的差异。有关 Git 中的差异和合并基础的更多信息，请参阅 Git 文档[git-merge-base](https://git-scm.com/docs/git-merge-base)中的。

在创建拉取请求时，您可以使用**为我编写描述**功能，让 Amazon Q 自动为拉取请求中包含的更改创建描述。当您选择此选项时，Amazon Q 会分析包含代码更改的源分支与要合并这些更改的目标分支之间的差异。然后，它会总结了这些更改的内容，以及对这些更改的意图和效果的优秀解释。此功能仅在美国西部（俄勒冈）地区适用于 CodeCatalyst 拉取请求。**为我编写描述**功能不适用于已链接存储库中的拉取请求。

**注意**  
**由 Amazon Bedrock** 提供支持： AWS 实现[自动滥用检测](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html)。由于**为我编写描述**、**创建内容摘要**、**推荐任务**、**使用 Amazon Q 创建功能或将功添加到项目**以及**将事务分配给 Amazon Q** 功能与用于软件开发的 Amazon Q 开发者版代理程序的功能都是基于 Amazon Bedrock 构建的，因此，用户可以充分利用 Amazon Bedrock 中实施的控制措施来强制实施安全性并负责任地使用人工智能（AI）。

**创建拉取请求**

1. 导航到您的项目。

1. 请执行以下操作之一：
   + 在导航窗格中，依次选择**代码**、**拉取请求**和**创建拉取请求**。
   + 在存储库主页上，选择**更多**，然后选择**创建拉取请求**。
   + 在项目页面上，选择**创建拉取请求**。

1. 在**源代码库**中，确保指定的源存储库是包含所提交代码的存储库。只有在您未从存储库的主页创建拉取请求时，才会显示此选项。

1. 在**目标分支**中，在审查代码后，选择要将代码合并到的分支。

1. 在**源分支**中，选择包含所提交代码的分支。

1. 在**拉取请求标题**中，输入一个标题，帮助其他用户了解需要审查的内容及其原因。

1. （可选）在**拉取请求描述**中，提供诸如事务链接或所做更改的描述之类的信息。
**提示**  
你可以选择 “**为我写描述**”， CodeCatalyst 自动生成拉取请求中包含的更改的描述。您可以在将自动生成的描述添加到拉取请求后，对描述进行更改。  
此功能要求为空间启用生成式人工智能功能，并且不适用于链接的存储库中的拉取请求。有关更多信息，请参阅 [Managing generative AI features](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)。

1. （可选）在**事务**中，选择**关联事务**，然后从列表中选择事务或输入事务 ID。要取消链接事务，请选择“取消链接”图标。

1. （可选）在**必需的审阅者**中，选择**添加必需审阅者**。从项目成员列表中进行选择，添加审阅者。必需的审阅者必须批准更改，才能将拉取请求合并到目标分支。
**注意**  
您不能将审阅者同时添加为必需的审阅者和可选的审阅者。您不能将自己添加为审阅者。

1. （可选）在**可选的审阅者**中，选择**添加可选审阅者**。从项目成员列表中进行选择，添加审阅者。可选的审阅者不必批准更改，这并不是将拉取请求合并到目标分支之前的必备要求。

1. 审查分支之间的差异。拉取请求中显示的差异是源分支中的修订与合并基准之间的更改，而合并基准是创建拉取请求时目标分支的 HEAD 提交。如果未显示任何更改，则分支可能相同，或者您可能为源和目标选择了相同的分支。

1. 如果您对拉取请求中包含的希望审查的代码和更改感到满意，请选择**创建**。
**注意**  
创建拉取请求后，可以添加备注。可以将备注添加到拉取请求中或文件内的单独行中，也可以为整个拉取请求添加备注。您可以使用 @ 符号后跟文件名的方式，添加指向文件等资源的链接。<a name="pull-requests-create-from-branch"></a>

**从分支创建拉取请求**

1. 导航到要在其中创建拉取请求的项目。

1. 在导航窗格中，选择**源存储库**，然后选择包含要审阅其代码更改的分支的存储库。

1. 选择默认分支名称旁边的下拉箭头，然后从列表中选择所需分支。要查看存储库的所有分支，请选择**查看全部**。

1. 选择**更多**，然后选择**创建拉取请求**。

1. 系统将为您预先选择存储库和源分支。在**目标分支**中，选择在审阅代码后要将代码合并到的分支。在**拉取请求标题**中，输入一个标题来帮助其他用户了解必须审阅的内容及其审阅原因。（可选）在**拉取请求描述**中提供更多信息，例如粘贴中相关问题的链接 CodeCatalyst，或者添加对您所做更改的描述。
**注意**  
如果拉取请求的目标分支与工作流中指定的某个分支匹配，则配置为针对拉取请求创建事件运行的工作流将在拉取请求创建后运行。

1. 审查分支之间的差异。如果未显示任何更改，则分支可能相同，或者您可能为源和目标选择了相同的分支。

1. （可选）在**事务**中，选择**关联事务**，然后从列表中选择事务或输入事务 ID。要取消链接事务，请选择“取消链接”图标。

1. （可选）在**必需的审阅者**中，选择**添加必需审阅者**。从项目成员列表中进行选择，添加审阅者。必需的审阅者必须批准更改，才能将拉取请求合并到目标分支。
**注意**  
您不能将审阅者同时添加为必需的审阅者和可选的审阅者。您不能将自己添加为审阅者。

1. （可选）在**可选的审阅者**中，选择**添加可选审阅者**。从项目成员列表中进行选择，添加审阅者。可选的审阅者不必批准更改，即可将拉取请求合并到目标分支中。

1. 如果您对拉取请求包含要审阅的更改以及所需的审阅者感到满意后，请选择**创建**。

如果您将任何工作流配置为在分支与拉取请求中的目标分支匹配时运行，则创建拉取请求后，您将在**拉取请求详细信息**区域的**概述**中看到有关这些工作流运行的信息。有关更多信息，请参阅[添加触发器到工作流](workflows-add-trigger-add.md)。

# 查看拉取请求
<a name="pull-requests-view"></a>

您可以在 Amazon CodeCatalyst 控制台中查看项目的拉取请求。项目摘要页面将显示项目的所有待处理的拉取请求。要查看所有拉取请求（无论状态如何），请导航到项目的拉取请求页面。在查看拉取请求时，您可以选择汇总针对为您创建的拉取请求的更改留下的所有评论。

**注意**  
**由 Amazon Bedrock** 提供支持： AWS 实现[自动滥用检测](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html)。由于**为我编写描述**、**创建内容摘要**、**推荐任务**、**使用 Amazon Q 创建功能或将功添加到项目**以及**将事务分配给 Amazon Q** 功能与用于软件开发的 Amazon Q 开发者版代理程序的功能都是基于 Amazon Bedrock 构建的，因此，用户可以充分利用 Amazon Bedrock 中实施的控制措施来强制实施安全性并负责任地使用人工智能（AI）。<a name="pull-requests-view-open-project"></a>

**查看待处理的拉取请求**

1. 导航到要在其中查看拉取请求的项目。

1. 在项目页面上，将显示待处理的拉取请求，包括有关拉取请求的创建者、包含拉取请求分支的存储库以及拉取请求的创建日期的信息。您可以按源存储库筛选待处理的拉取请求视图。

1. 要查看所有拉取请求，请选择**查看全部**。您可以使用选择器在各个选项之间进行选择。例如，要查看所有拉取请求，请选择**任何状态**和**任何作者**。

   或者，在导航窗格中，选择**代码**，再选择**拉取请求**，然后使用选择器来优化视图。

1. 在**拉取请求**页面上，您可以按 ID、标题、状态等对拉取请求进行排序。要自定义拉取请求页面上显示的信息的内容和数量，请选择齿轮图标。

1. 要查看特定的拉取请求，请从列表中选择该拉取请求。

1. 要查看与该拉取请求关联的工作流运行的状态（如果有），请选择**概述**，然后在**工作流运行**下查看拉取请求的**拉取请求详细信息**区域中的信息。

   如果为工作流配置了拉取请求创建或修订事件，并且工作流中的目标分支要求与拉取请求中指定的目标分支相匹配，则会运行工作流。有关更多信息，请参阅 [添加触发器到工作流](workflows-add-trigger-add.md)。

1. 要查看链接的事务（如果有），请选择**概述**，然后查看**事务**下的**拉取请求详细信息**中的信息。如果您想查看链接的事务，请从列表中选择其 ID。

1. （可选）要创建针对拉取请求修订中的代码更改留下的评论的摘要，请选择**创建内容摘要**。摘要将不包括针对整个拉取请求留下的任何评论。
**注意**  
此功能要求为空间启用生成式人工智能功能，它不适用于链接的存储库并且仅在美国西部（俄勒冈州）区域提供。有关更多信息，请参阅 [Managing generative AI features](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)。

1. 要查看拉取请求中的代码更改，请选择**更改**。您可以在**文件已更改**中快速查看拉取请求中发生更改的文件数，以及拉取请求中具有评论的文件。文件夹旁边显示的评论数表示该文件夹中文件的评论数。展开文件夹可查看文件夹中每个文件的评论数。您还可以查看为特定代码行留下的任何评论。

   
**注意**  
并非拉取请求中的所有更改都可以在控制台中显示。例如，您无法在控制台中查看 Git 子模块，因此无法在拉取请求中查看子模块中的差异。有些差异可能太大而无法显示。有关更多信息，请参阅[中的源存储库配额 CodeCatalyst](source-quotas.md)和[查看文件查看文件更改历史记录](source-files-view.md)。

1. 要查看此拉取请求的质量报告，请选择**报告**。
**注意**  
必须配置工作流来生成报告，以使报告显示在拉取请求中。有关更多信息，请参阅 [使用工作流进行测试使用工作流进行测试](test-workflow-actions.md)。

# 管理将拉取请求与审批规则合并的要求
<a name="source-pull-requests-approval-rules"></a>

创建拉取请求时，您可以选择将必需或可选的审阅者添加到该单个拉取请求中。但是，您也可以创建所有拉取请求在合并到特定的目标分支时必须满足的要求。这些要求称为审批规则。审批规则是为存储库中的分支配置的。当您创建目标分支已配置审批规则的拉取请求时，除了获得任何必需的审阅者的批准外，还必须满足该规则的要求，然后才能将拉取请求合并到该分支。创建审批规则有助于您保持合并到分支（如默认分支）的质量标准。

应用于源存储库默认分支的审批规则与应用于其他分支的审批规则在行为上有些不同。应用于默认分支的任何规则，都将自动应用于您指定为默认分支的任何分支。以前设置为默认分支的分支仍将保留应用于它的规则。

创建审批规则时，您应该考虑项目用户在现在和将来如何满足该规则。例如，如果您的项目中有六个用户，而您创建的审批规则要求在合并到目标分支前需要五次审批，那么您实际上创建了一条规则，要求除创建拉取请求的人员以外的所有人在合并拉取请求前批准该请求。

**注意**  
您必须具有项目管理员角色才能在 CodeCatalyst 项目中创建和管理批准规则。无法为链接的存储库创建审批规则。

 您不能删除审批规则，但可以将其更新为要求零审批，这样就有效地删除了规则。<a name="view-edit-approval-rules"></a>

**查看和编辑拉取请求目标分支的审批规则**

1. 导航到存储库所在的项目。

1. 从项目的源存储库列表中选择存储库的名称。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。

   选择要在其中查看审批规则的存储库。

1. 在存储库的概述页面上，选择**分支**。

1. 在**审批规则**栏中，选择**查看**可查看存储库每个分支的任何规则的状态。

   在**最小批准数**中，该数字与拉取请求合并到该分支前所需的批准数相对应。

1. 要创建或更改审批规则，请选择**管理设置**。在源存储库的设置页面上，在**审批规则**中，选择**编辑**。
**注意**  
您必须具有**项目管理员**角色才能编辑审批规则。

1. 在**分支**中，从下拉列表中选择要为其配置审批规则的分支名称。在**最小批准数**中，输入一个数字，然后选择**保存**。

# 审核拉取请求
<a name="pull-requests-review"></a>

您可以使用 Amazon CodeCatalyst 控制台协作查看并评论拉取请求中包含的更改。您可以向单个代码行中添加评论，说明源分支和目标分支之间的差异以及各个拉取请求修订之间的差异。您可以选择创建在拉取请求中更改代码时留下的评论的摘要，以帮助您快速了解其他用户留下的反馈。您还可以选择创建一个开发环境来处理代码。

**注意**  
**由 Amazon Bedrock** 提供支持： AWS 实现[自动滥用检测](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html)。由于**为我编写描述**、**创建内容摘要**、**推荐任务**、**使用 Amazon Q 创建功能或将功添加到项目**以及**将事务分配给 Amazon Q** 功能与用于软件开发的 Amazon Q 开发者版代理程序的功能都是基于 Amazon Bedrock 构建的，因此，用户可以充分利用 Amazon Bedrock 中实施的控制措施来强制实施安全性并负责任地使用人工智能（AI）。

**提示**  
您可以在个人资料中配置您将收到哪些拉取请求事件的相关电子邮件。有关更多信息，请参阅 [从 CodeCatalyst 发送 Slack 和电子邮件通知](notifications-manage.md)。<a name="merge-base"></a>

拉取请求显示了拉取请求修订与创建拉取请求时作为目标分支最新块的提交之间的差异。这称作合并基础。有关 Git 中的差异和合并基础的更多信息，请参阅 Git 文档[git-merge-base](https://git-scm.com/docs/git-merge-base)中的。

**提示**  
在控制台中工作时，特别是在您已打开拉取请求一段时间的情况下，请考虑刷新浏览器以确保在开始审核拉取请求之前，有最新的修订可供拉取请求使用。

**在 CodeCatalyst 控制台中查看拉取请求**

1. 导航到您的项目。

1. 通过执行下列操作之一来导航到拉取请求：
   + 如果项目页面上列出了拉取请求，请从列表中选择它。
   + 如果项目页面上未列出拉取请求，请选择**查看全部**。使用筛选条件和排序来查找拉取请求，然后从列表中选择它。
   + 在导航窗格中，选择**代码**，然后选择**拉取请求**。

1. 从列表中选择要审核的拉取请求。您可以通过在筛选条件栏中键入拉取请求的部分名称来筛选拉取请求列表。

1. 在**概述**中，您可以审核拉取请求的名称和标题。您可以创建和查看拉取请求本身留下的评论。您还可以查看拉取请求的详细信息，包括有关工作流运行、链接的事务、审阅者、拉取请求作者和可行的合并策略的信息。
**注意**  
特定代码行上留下的评论会显示在**更改**中。

1. （可选）要添加适用于整个拉取请求的评论，请展开**针对拉取请求的评论**，然后选择**创建评论**。

1. （可选）要查看对此拉取请求修订中的更改留下的所有评论的摘要，请选择**创建评论摘要**。
**注意**  
此功能要求为空间启用生成式人工智能功能，并且仅在美国西部（俄勒冈州）区域提供。有关更多信息，请参阅 [Managing generative AI features](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)。

1. 在**更改**中，您可以查看目标分支与拉取请求的最新修订之间的差异。如果有多个修订，您可以在它们之间的差异中更改要比较的修订。有关修订的更多信息，请参阅[修订](source-concepts.md#revision-concept)。
**提示**  
您可以在**文件已更改**中快速查看拉取请求中发生更改的文件数，以及拉取请求中具有评论的文件。文件夹旁边显示的评论数表示该文件夹中文件的评论数。展开文件夹可查看文件夹中每个文件的评论数。

1. 要更改差异的显示方式，请在**统一**和**拆分**之间进行选择。

1. 要向拉取请求中的行添加评论，请转到要评论的行。选择为该行显示的评论图标，输入评论，然后选择**保存**。

1. 要查看拉取请求中的各个修订之间的更改或其源分支和目标分支之间的更改，请从**比较**中的可用选项中进行选择。修订中各行的评论将保留在这些修订中。

1. 如果您已将工作流配置为生成有关拉取请求触发器的代码覆盖率报告，则可以在相关的拉取请求中查看行和分支覆盖率结果。要隐藏代码覆盖率结果，请选择**隐藏代码覆盖率**。有关更多信息，请参阅 [代码覆盖率报告](test-workflow-actions.md#test-code-coverage-reports)。

1. 如果要对拉取请求进行代码更改，则可以从拉取请求创建开发环境。选择**创建开发环境**。可选择为开发环境添加名称或编辑其配置，然后选择**创建**。

1. 在**报告**中，您可以查看此拉取请求中的质量报告。如果有多个修订，您可以在它们之间的差异中更改要比较的修订。您可以按名称、状态、工作流、操作和类型筛选报告。
**注意**  
必须配置工作流来生成报告，以使报告显示在拉取请求中。有关更多信息，请参阅 [在操作中配置质量报告](test-config-action.md)。

1. 要查看特定报告，请从列表中选择该报告。有关更多信息，请参阅 [使用工作流进行测试使用工作流进行测试](test-workflow-actions.md)。

1. 如果您被列为拉取请求的审阅者并想批准更改，请确保您正在查看最新修订，然后选择**批准**。
**注意**  
所有必需的审阅者都必须批准拉取请求，之后才能合并拉取请求。

# 更新拉取请求
<a name="pull-requests-update"></a>

通过更新拉取请求，可让其他项目成员更轻松地审核代码。您可以更新拉取请求以更改其审阅者、事务链接、拉取请求的标题或描述。例如，您可能需要更改拉取请求的必需的审阅者，以移除正在度假的人员并添加其他人员。您还可以将提交推送到处于打开状态的拉取请求的源分支，从而通过进一步的代码更改来更新拉取请求。每次推送到源存储库中拉取请求的 CodeCatalyst 源分支都会创建一个修订版。项目成员可以查看拉取请求中的各个修订之间的差异。<a name="pull-requests-update-reviewers"></a>

**更新拉取请求的审阅者**

1. 导航到要在其中更新拉取请求审阅者的项目。

1. 在项目页面上的**打开拉取请求**下，选择要更新其审阅者的拉取请求。或者，在导航窗格中，选择**代码**，再选择**拉取请求**，然后选择要更新的拉取请求。

1. （可选）在**概述**中的**拉取请求详细信息**区域中，选择加号以添加必需或可选的审阅者。选择审阅者旁边的 **X** 可将其作为可选或必需的审阅者移除。

   

1. （可选）在**概述**中的**拉取请求详细信息**区域中，选择**链接的事务**以将事务链接到拉取请求，然后从列表中选择事务或输入事务 ID。要取消链接某个事务，请选择要取消链接的事务旁边的取消链接图标。<a name="pull-requests-update-code"></a>

**更新拉取请求的源分支中的文件和代码**

1. 要更新多个文件，您可以[创建开发环境](devenvironment-create.md)，也可以克隆存储库及其源分支，然后使用 Git 客户端或集成式开发环境（IDE）对源分支中的文件进行更改。提交更改并将其推送到源存储库中的 CodeCatalyst 源分支，以使用更改自动更新拉取请求。有关更多信息，请参阅[克隆源存储库](source-repositories-clone.md)和[通过在 Amazon 中提交来了解源代码的变化 CodeCatalyst](source-commits.md)。

1. 可以使用 Git 客户端或 IDE 更新源分支中的单个文件，就像更新多个文件一样。您也可以直接在 CodeCatalyst控制台中对其进行编辑。有关更多信息，请参阅 [编辑文件](source-files-edit.md)。<a name="pull-requests-update-pull-request"></a>

**更新拉取请求的标题和描述**

1. 导航到要在其中更新拉取请求的标题或描述的项目。

1. 项目页面将显示待处理的拉取请求，包括有关拉取请求的创建者、包含拉取请求分支的存储库以及拉取请求的创建时间的信息。您可以按源存储库筛选待处理的拉取请求视图。从列表中选择要更改的拉取请求。

1. 要查看所有拉取请求，请选择**查看全部**。或者，在导航窗格中，选择**代码**，然后选择**拉取请求**。使用筛选框或排序功能查找要更改的拉取请求，然后将其选定。

1.  在**概述**部分中，选择**编辑**。

1. 更改标题或描述，然后选择**保存**。

# 合并拉取请求
<a name="pull-requests-merge"></a>

在您的代码经过审核并且所有必需的审阅者都已批准之后，您可以使用支持的合并策略（例如快进）在 CodeCatalyst 控制台中合并拉取请求。并非 CodeCatalyst 控制台支持的所有合并策略都可用作所有拉取请求的选项。 CodeCatalyst 评估合并，并且仅允许您在控制台中可用且能够将源分支合并到目标分支的合并策略之间进行选择。您还可以使用所选的 Git 合并策略来合并拉取请求，方法是在本地计算机或开发环境中运行 **git merge** 命令来将源分支合并到目标分支中。然后，您可以将目标分支中的这些更改推送到中的源存储库 CodeCatalyst。

**注意**  
合并分支并在 Git 中推送更改不会自动关闭拉取请求。

如果您具有项目管理员角色，则还可以选择合并尚未满足所有审批要求和审批规则的拉取请求。

## 合并拉取请求（控制台）
<a name="pull-requests-merge-console"></a>

如果源分支和目标分支之间没有合并冲突，并且所有必需的审阅者都批准了拉取请求，则可以在 CodeCatalyst 控制台中合并拉取请求。如果发送冲突或者无法完成合并，则合并按钮将处于非活跃状态，并显示**不可合并**标签。在这种情况下，您必须获得所有必需的批准者的审批，本地解决冲突（如有必要）并推送这些更改，之后才能进行合并。合并拉取请求会自动向拉取请求的创建者以及任何所需或可选的审阅者发送一封电子邮件。这不会自动关闭或更改与拉取请求链接的任何事务的状态。

**提示**  
您可以在个人资料中配置您将收到哪些拉取请求事件的相关电子邮件。有关更多信息，请参阅 [从 CodeCatalyst 发送 Slack 和电子邮件通知](notifications-manage.md)。<a name="pull-requests-merge-console"></a>

**合并拉取请求**

1. 导航到要在其中合并拉取请求的项目。

1. 在项目页面上的**打开拉取请求**下，选择要合并的拉取请求。如果您未看到拉取请求，请选择**查看所有拉取请求**，然后从列表中选择该拉取请求。或者，在导航窗格中，选择**代码**，再选择**拉取请求**，然后选择要合并的拉取请求。选择**合并**。

1. 从拉取请求的可用合并策略中选择。（可选）选择或取消选择在合并拉取请求后删除源分支的选项，然后选择**合并**。
**注意**  
如果 “**合并**” 按钮处于非活动状态，或者您看到 “**不可合并**” 标签，则表示必需的审阅者尚未批准拉取请求，或者无法在控制台中合并拉取请求。 CodeCatalyst **概述**中的**拉取请求详细信息**区域中的时钟图标会指示尚未批准拉取请求的审阅者。如果所有必需的审阅者都已批准拉取请求，但**合并**按钮仍处于非活跃状态，则可能存在合并冲突。选择带下划线的**不可合并**标签，以查看有关拉取请求无法合并的原因的更多详细信息。您可以在开发环境或 CodeCatalyst 控制台中解决目标分支的合并冲突，然后合并拉取请求，也可以解决冲突并在本地合并，然后将包含合并的提交推送到中的源分支 CodeCatalyst。有关更多信息，请参阅[合并拉取请求（Git）](#pull-requests-merge-git)和您的 Git 文档。

## 覆盖合并要求
<a name="pull-requests-merge-override"></a>

如果您具有**项目管理员**角色，则可以选择合并尚未满足所有必需的审批要求和审批规则的拉取请求。这称为覆盖拉取请求的要求。如果必需的审阅者不可用，或者迫切需要将特定的拉取请求合并到具有无法快速满足的审批规则的分支中，则可以选择执行此操作。<a name="pull-requests-merge-console"></a>

**合并拉取请求**

1. 在要覆盖要求并合并的拉取请求中，选择**合并**按钮旁边的下拉箭头。选择**覆盖审批要求**。

1. 在**覆盖原因**中，详细说明为什么要在拉取请求未达到审批规则和必需的审阅者要求的情况下覆盖此拉取请求。虽然这是一项可选操作，但强烈建议您这样做。

1. （可选）选择合并策略或接受默认值。您也可以选择使用更多详细信息更新自动生成的提交消息。

1. 选择或取消选择该选项可在合并时删除源分支。建议您在覆盖合并拉取请求的要求时保留源分支，直到您有机会与其他团队成员一起审阅该决定。

1. 选择**合并**。

## 合并拉取请求（Git）
<a name="pull-requests-merge-git"></a>

Git 支持许多用于合并和管理分支的选项。以下命令是您可使用的一些选项。有关更多信息，请参阅 [Git 网站](https://git-scm.com/doc)上的可用文档。在合并并推送更改后，请手动关闭拉取请求。有关更多信息，请参阅 [关闭拉取请求](pull-requests-close.md)。


**用于合并分支的常用 Git 命令**  

|  |  | 
| --- |--- |
|  将本地存储库中的源分支的更改合并到本地存储库中的目标分支。  |  `git checkout destination-branch-name` `git merge source-branch-name`  | 
|  将源分支合并到目标分支，并指定快进式合并。这会合并分支并将目标分支指针移动到源分支的最新块。  |  `git checkout destination-branch-name` `git merge --ff-only source-branch-name`  | 
|  将源分支合并到目标分支，并指定压缩合并。这会将源分支中的所有提交合并到目标分支中的单个合并提交。  |  `git checkout destination-branch-name` `git merge --squash source-branch-name`  | 
|  将源分支合并到目标分支，并指定三向合并。这会创建合并提交，并将源分支中的各个提交添加到目标分支。  |  `git checkout destination-branch-name` `git merge --no-ff source-branch-name`  | 
|  删除本地存储库中的源分支。在合并到目标分支并将更改推送到源存储库之后，执行此操作对于清理本地存储库非常有用。  |  `git branch -d source-branch-name`  | 
|  使用本地存储库为远程存储库指定的昵称删除远程存储库（中的源存储库 CodeCatalyst）中的源分支。（注意冒号（`:`）的用法。） 或者，在命令中指定 `--delete`。  |  `git push remote-name :source-branch-name` `git push remote-name --delete source-branch-name`  | 

# 关闭拉取请求
<a name="pull-requests-close"></a>

您可以将拉取请求标记为**已关闭**。这不会合并拉取请求，但有助于您确定哪些拉取请求需要操作，以及哪些拉取请求不再相关。如果您不再计划合并这些更改，或者更改已由另一个拉取请求合并，建议您关闭拉取请求。

关闭拉取请求会自动向拉取请求的创建者以及任何所需或可选的审阅者发送一封电子邮件。这不会自动更改与拉取请求链接的任何事务的状态。

**注意**  
拉取请求一经关闭便无法重新打开。<a name="pull-requests-close-pull-request"></a>

**关闭拉取请求**

1. 导航到要在其中关闭拉取请求的项目。

1. 在项目页面上，将显示打开拉取请求。选择要关闭的拉取请求。

1. 选择**关闭**。

1. 检查信息，然后选择**关闭拉取请求**。

# 通过在 Amazon 中提交来了解源代码的变化 CodeCatalyst
<a name="source-commits"></a>

提交是存储库内容以及对该内容进行的更改的快照。每次用户提交并向分支推送更改时，都会保存该信息。Git 提交信息包括提交作者、提交更改的人、日期和时间，以及所做的更改。当您在亚马逊 CodeCatalyst 控制台中创建或编辑文件时，系统会自动包含类似信息，但作者姓名是您的 CodeCatalyst 用户名。您还可以为提交添加 Git 标签，以便于识别特定提交。

在 Amazon 中 CodeCatalyst，您可以：
+ 查看分支的提交列表。
+ 查看单个提交，包括与一个或多个父提交相比，某个提交中所做的更改。

您还可以查看文件和文件夹。有关更多信息，请参阅 [在 Amazon 中管理源代码文件 CodeCatalyst](source-files.md)。

**Topics**
+ [查看分支的提交情况](#source-commits-view)
+ [更改提交的显示方式（CodeCatalyst 控制台）](#source-commits-settings)

## 查看分支的提交情况
<a name="source-commits-view"></a>

您可以通过在 CodeCatalyst 控制台中查看分支的提交来查看对分支所做更改的历史记录。这有助于您了解谁在何时对分支进行了更改。您还可以查看特定提交中所做的更改。

**提示**  
以及查看对特定文件进行更改的提交的历史记录。有关更多信息，请参阅 [查看文件查看文件更改历史记录](source-files-view-history.md)。

您还可以使用 Git 客户端查看提交。有关更多信息，请参阅您的 Git 文档。<a name="source-commits-view-console"></a>

**查看提交（控制台）**

1. 导航到包含要查看其中提交的源存储库的项目。

   

1. 从项目的源存储库列表中选择存储库的名称。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。

   选择要在其中查看分支提交的存储库。

1. 此时将显示存储库的默认分支，包括该分支的最新提交信息。选择**提交**。或者，选择**更多**，然后选择**查看提交**。

1. 要查看不同分支的提交，请选择分支选择器，然后选择分支名称。

1. 要查看特定提交的详细信息，请从**提交标题**中选择其标题。此时将显示提交的详细信息，包括其父提交的信息，以及通过对父提交与指定提交进行的对比，确认的对代码所做的更改。
**提示**  
如果一个提交有多个父提交，您可以通过父提交 ID 旁边的下拉图标，选择要查看其信息并显示更改的父提交。

## 更改提交的显示方式（CodeCatalyst 控制台）
<a name="source-commits-settings"></a>

您可以更改**提交**视图中显示的信息。您可以选择隐藏或显示作者和提交 ID 等列。<a name="source-commits-settings-console"></a>

**更改提交的显示方式（控制台）**

1. 导航到包含要查看其中提交的源存储库的项目。

1. 从项目的源存储库列表中选择存储库的名称。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。

   选择要在其中更改提交查看方式的存储库。

1. 此时将显示存储库的默认分支，包括该分支的最新提交信息。选择**提交**。

1. 选择齿轮图标。

1. 在**首选项**中，选择要显示的提交次数，并选择是否显示提交作者、提交日期和提交 ID 的信息。
**注意**  
在信息显示中无法隐藏提交标题。

1. 完成更改后，选择**保存**以保存更改，或选择**取消**放弃更改。

# 中的源存储库配额 CodeCatalyst
<a name="source-quotas"></a>

下表描述了 Amazon 中源存储库的配额和限制 CodeCatalyst。有关 Amazon 配额的更多信息 CodeCatalyst，请参阅[CodeCatalyst 的配额](quotas.md)。


| 资源 | 信息 | 
| --- | --- | 
| 分支名称 |  任意允许使用的字符组合，长度在 1 到 256 个字符之间，且必须在存储库中唯一。分支名称不能： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codecatalyst/latest/userguide/source-quotas.html) 分支名称是引用。分支名称的很多限制基于 Git 引用标准。有关更多信息，请参阅 [Git 内部结构和[git-check-ref-format](https://git-scm.com/docs/git-check-ref-format)。](https://git-scm.com/book/en/v2/Git-Internals-Git-References)  | 
|  关于拉取请求的注释  |  拉取请求最多 1000 个。  | 
| 提交消息 | 最多 1024 个字符。 | 
| 文件路径 | 允许的字符的任意组合，长度在 1 到 4,096 个字符之间。文件路径必须是一个明确的名称，用于指定文件和确切的文件位置。文件路径深度不能超过 20 个目录。此外，文件路径不能：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codecatalyst/latest/userguide/source-quotas.html) 文件名和路径必须是完全限定的。本地计算机上文件的名称和路径必须遵循该操作系统的标准。在指定存储库中文件的路径时，请使用 Amazon Linux 的标准。 | 
| 文件大小 | 使用 CodeCatalyst控制台时，任何单个文件的最大容量为 6 MB。 | 
| 可在控制台中查看文件大小 CodeCatalyst  | 使用 CodeCatalyst控制台时，任何单个文件的最大容量为 6 MB。 | 
| Git blob 大小 |  最大 2 GB。  单个提交中的所有文件的数量和总大小没有限制，只要元数据不超过 6 MB 并且单个 blob 不超过 2 GB 即可。不过，作为最佳实践，可以考虑进行多次较小的提交，而不是一次大的提交。   | 
| 提交的元数据  |  对于组合的[提交的元数据](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects)（例如，作者信息、日期、父提交列表和提交消息的组合），最多 6 MB。  单个提交中的所有文件的数量和总大小没有限制，只要数据不超过 20 MB，单个文件不超过 6 MB，并且单个 blob 不超过 2 GB。   | 
| 可以关联到拉取请求 CodeCatalyst 的问题数量 | 50 | 
| 可关联到拉取请求的 Jira 事务数 | 50 | 
|  空间中未处理的拉取请求数  |  亚马逊 CodeCatalyst 空间的最大值为 1,000。  | 
|  空间中的总拉取请求数  |  亚马逊 CodeCatalyst 空间的最大值为 10,000。  | 
| 单个推送中的引用数 | 最多 4000 个，包括创建、删除和更新。存储库中的引用总数没有限制。 | 
| 空间中的存储库数量 |  亚马逊 CodeCatalyst 空间上限为 5,000。  | 
|  存储库描述  |  任意字符组合，长度在 0 到 1000 个字符之间。存储库描述是可选的。  | 
| 存储库名称 |  一个项目中的存储库名称必须唯一。它们可以包含字母、数字、句点、下划线和短划线的任意组合，长度在 1 到 100 个字符之间。名称不区分大小写。存储库名称不能以 .git 结尾，不能包含空格，也不能包含以下任何字符：`! ? @ # $ % ^ & * ( ) + = { } [ ] \| \ / > < ~ ` ' " ; : `  | 
|  存储库大小  |  存储库大小受空间总体存储限制的影响。有关更多信息，请参阅 [Pricing](https://codecatalyst.aws/explore/pricing) 和[排查源存储库的问题](troubleshooting-source.md)。  | 
| 拉取请求的审阅者 | 拉取请求总共最多有 100 位审阅者（可选或必需）。 | 
|  拉取请求的书面摘要  |  拉取请求的最大书面摘要数量取决于您空间的计费套餐。有关更多信息，请参阅 [定价](https://codecatalyst.aws/explore/pricing)。  | 