

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

# 為多帳戶 DevOps 環境選擇 Git 分支策略
<a name="introduction"></a>

*Amazon Web Services* [（貢獻者](contributors.md))

*2024 年 2 月* ([文件歷史記錄](doc-history.md))

轉向雲端型方法並在 上交付軟體解決方案 AWS 可以是變革性的。這可能需要變更您的軟體開發生命週期程序。一般而言， AWS 帳戶 在 中的開發過程中會使用多個 AWS 雲端。選擇相容的 Git 分支策略來與 DevOps 程序配對對於成功至關重要。為您的組織選擇正確的 Git 分支策略，可協助您在開發團隊之間簡潔地傳達 DevOps 標準和最佳實務。Git 分支在單一環境中可能很簡單，但在跨多個環境套用時可能會變得令人混淆，例如沙盒、開發、測試、預備和生產環境。擁有多個環境會增加 DevOps 實作的複雜性。

本指南提供 Git 分支策略的視覺化圖表，顯示組織如何實作多帳戶 DevOps 程序。視覺化指南可協助團隊了解如何將 Git 分支策略與 DevOps 實務合併。使用 Gitflow、GitHub Flow 或 Trunk 等標準分支模型來管理原始程式碼儲存庫，有助於開發團隊調整其工作。這些團隊也可以在網際網路上使用標準 Git 訓練資源來了解和實作這些模型和策略。

如需 DevOps 最佳實務 AWS，請參閱 AWS Well-Architected 中的 [DevOps 指南](https://docs.aws.amazon.com/wellarchitected/latest/devops-guidance/devops-guidance.html)。當您檢閱本指南時，請使用盡職調查來為您的組織選擇正確的分支策略。有些策略可能比其他策略更符合您的使用案例。

## 目標
<a name="objectives"></a>

本指南是文件系列的一部分，旨在為具有多個 的組織選擇和實作 DevOps 分支策略 AWS 帳戶。此系列旨在協助您從一開始就套用最符合您的需求、目標和最佳實務的策略，以簡化您在 中的體驗 AWS 雲端。本指南不包含 DevOps 可執行指令碼，因為它們會根據組織使用的持續整合和持續交付 (CI/CD) 引擎和技術架構而有所不同。

本指南說明三種常見 Git 分支策略之間的差異：GitHub Flow、Gitflow 和 Trunk。本指南中的建議可協助團隊識別與其組織目標一致的分支策略。檢閱本指南後，您應該能夠為您的組織選擇分支策略。選擇策略後，您可以使用下列其中一種模式，協助您與開發團隊實作該策略：
+ [實作多帳戶 DevOps 環境的主體分支策略](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/implement-a-trunk-branching-strategy-for-multi-account-devops-environments.html)
+ [針對多帳戶 DevOps 環境實作 GitHub 流程分支策略](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/implement-a-github-flow-branching-strategy-for-multi-account-devops-environments.html)
+ [為多帳戶 DevOps 環境實作 Gitflow 分支策略](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/implement-a-gitflow-branching-strategy-for-multi-account-devops-environments.html)

請務必注意，適用於某個組織、團隊或專案的項目可能不適合其他組織、團隊或專案。Git 分支策略之間的選擇取決於各種因素，例如團隊大小、專案需求，以及協作、整合頻率和發行管理之間的所需平衡。

## 使用 CI/CD 實務
<a name="using-ci-cd-practices"></a>

AWS 建議您實作持續整合和持續交付 (CI/CD)，這是自動化軟體版本生命週期的程序。它會自動化傳統上從開發取得新程式碼到生產所需的許多或所有手動 DevOps 程序。CI/CD 管道包含沙盒、開發、測試、預備和生產環境。在每個環境中，CI/CD 管道會佈建部署或測試程式碼所需的任何基礎設施。透過使用 CI/CD，開發團隊可以對程式碼進行變更，然後自動測試和部署。CI/CD 管道也為開發團隊提供控管和防護機制。它們會強制執行一致性、標準、最佳實務，以及功能接受和部署的最低接受程度。如需詳細資訊，請參閱[實作持續整合和持續交付 AWS](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/welcome.html)。

本指南中討論的所有分支策略都非常適合 CI/CD 實務。CI/CD 管道的複雜性會隨著分支策略的複雜性而增加。例如，Gitflow 是本指南中討論的最複雜分支策略。此策略的 CI/CD 管道需要更多步驟 （例如基於合規原因），而且必須支援多個同時的生產版本。隨著分支策略的複雜性增加，使用 CI/CD 也變得更加重要。這是因為 CI/CD 為開發團隊建立防護機制和機制，以防止開發人員有意或無意地規避定義的程序。

AWS 提供一套開發人員服務，旨在協助您建置 CI/CD 管道。例如， [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 是一種全受管的持續交付服務，可協助您自動化發行管道，以取得快速且可靠的應用程式和基礎設施更新。 會[AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)編譯原始程式碼、執行測試，並產生ready-to-deploy的軟體套件。如需詳細資訊，請參閱 [上的開發人員工具 AWS](https://aws.amazon.com/products/developer-tools/)。