

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

# 将 EB CLI 与 Git 配合使用
<a name="eb3-cli-git"></a>

EB CLI 提供了 Git 集成，因此您可以将代码分支与 Elastic Beanstalk 中的特定环境相关联，以组织您的部署。

**安装 Git 并初始化 Git 存储库**

1. 转至 [http://git-scm.com](http://git-scm.com) 下载最新版的 Git。

1. 通过键入以下命令初始化您的 Git 存储库：

   ```
   ~/eb$ git init
   ```

   EB CLI 现在将识别出您的应用程序已设置 Git。

1. 如果您尚未运行 **eb init**，请立即运行：

   ```
   ~/eb$ eb init
   ```

## 将 Elastic Beanstalk 环境与 Git 分支关联
<a name="eb3-cli-git.branches"></a>

您可以将不同的环境与各个代码分支关联。在签出分支时，更改将部署到关联的环境。例如，您可以键入以下内容以将生产环境与主线分支关联，并将单独的开发环境与开发分支关联：

```
~/eb$ git checkout mainline
~/eb$ eb use prod
~/eb$ git checkout develop
~/eb$ eb use dev
```

## 部署更改
<a name="eb3-cli-git.deploy"></a>

默认情况下，EB CLI 将在当前分支中部署最新提交，使用提交 ID 和消息分别作为应用程序版本标签和描述。如果要在不提交的情况下部署到环境，可使用 `--staged` 选项来部署已添加到暂存区域的更改。

**在不提交的情况下部署更改**

1. 将新文件和更改后的文件添加到暂存区域：

   ```
   ~/eb$ git add .
   ```

1. 使用 **eb deploy** 部署暂存的更改：

   ```
   ~/eb$ eb deploy --staged
   ```

如果您已配置 EB CLI 以[部署工件](eb-cli3-configuration.md#eb-cli3-artifact)，并且未将工件提交到 Git 存储库，则使用 `--staged` 选项来部署最新版本。

## 使用 Git 子模块
<a name="eb3-cli-git.submodules"></a>

通过包含 Git 子模块获益的一些代码项目 - 顶级存储库中的存储库。在使用 **eb create** 或 **eb deploy** 部署代码时，EB CLI 可在应用程序版本 zip 文件中包含子模块，并将这些子模块与剩余代码一起上传。

您可以使用项目文件夹中的 EB CLI 配置文件 `include_git_submodules` 的 `global` 部分中的 `.elasticbeanstalk/config.yml` 选项来控制子模块的包含。

要包含子模块，请将此选项设置为 `true`：

```
global:
  include_git_submodules: true
```

当 `include_git_submodules` 选项缺失或设置为 `false` 时，EB CLI 不会在上传的 zip 文件中包含子模块。

有关 Git 子模块的更多详细信息，请参阅 [Git 工具 - 子模块](https://git-scm.com/book/en/v2/Git-Tools-Submodules)。

**默认 行为**  
当您运行 **eb init** 以配置项目时，EB CLI 会添加 `include_git_submodules` 选项，并将其设置为 `true`。这将确保您的部署中包含项目中已有的所有子模块。  
EB CLI 并不总是支持包含子模块。为了避免对添加子模块支持之前已存在的项目进行意外的不必要更改，EB CLI 在缺少 `include_git_submodules` 选项时不包含子模块。如果您拥有这些现有项目之一，并且希望在部署中包含子模块，请添加此选项并将其设置为 `true`，如本部分中所述。

**CodeCommit 行为**  
Elastic Beanstalk 与的集成 CodeCommit 目前不支持子模块。如果您启用了与环境集成的功能 CodeCommit，则您的部署中不包括子模块。

## 将 Git 标签分配给您的应用程序版本
<a name="eb3-cli-git.tags"></a>

您可使用 Git 标签作为您的版本标签来标识正在您的环境中运行的应用程序版本。例如，请键入以下命令：

```
~/eb$ git tag -a v1.0 -m "My version 1.0"
```