

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 搭配 Git 使用 EB CLI
<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 Tools - 子模組](https://git-scm.com/book/en/v2/Git-Tools-Submodules)。

**預設行為**  
執行 **eb init** 來設定您的專案時，EB CLI 會新增 `include_git_submodules` 選項並將其設定為 `true`。此能確保您專案的子模組都納入部署作業中。  
EB CLI 不一定會支援納入子模組。在新增子模組支援前，為了避免已有專案出現意外或不想要的變更，若缺少 `include_git_submodules` 選項則 EB CLI 不會納入子模組。若您希望在其中一個現有專案的部署作業納入子模組，請如本章節所述，新增此選項並將其設定為 `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"
```