

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

# 树干中的分支策略
<a name="branches-in-a-trunk-strategy"></a>

中继分支策略通常具有以下分支。



![主干分支策略中的分支和环境。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/choosing-git-branch-approach/images/trunk-branching-strategy.png)


## 功能分支
<a name="feature-branch"></a>

您可以在`feature`分支中开发功能或创建修补程序。要创建`feature`分支，您需要从该分支中`main`分支。开发人员在`feature`分支中迭代、提交和测试代码。某项功能完成后，开发者将对该功能进行推广。从`feature`分支向前只有两条路径：
+ 合并到分`sandbox`支中
+ 向`main`分支创建合并请求


|  |  | 
| --- |--- |
| 命名惯例： | `feature/<story number>_<developer initials>_<descriptor>` | 
| 命名约定示例： | `feature/123456_MS_Implement_Feature_A` | 

## 沙盒分支
<a name="sandbox-branch"></a>

这个分支是一个非标准的主干分支，但它对 CI/CD管道开发很有用。该`sandbox`分支主要用于以下目的：
+ 使用管道向沙盒环境执行全面部署 CI/CD 
+ 在提交合并请求以在较低的环境（例如开发或测试）中进行全面测试之前，先开发和测试管道。

`Sandbox`分支本质上是临时性的，其寿命是短暂的。应在特定测试完成后将其删除。


|  |  | 
| --- |--- |
| 命名惯例： | `sandbox/<story number>_<developer initials>_<descriptor>` | 
| 命名约定示例： | `sandbox/123456_MS_Test_Pipeline_Deploy` | 

## 主分支
<a name="main-branch"></a>

分`main`支始终代表在生产环境中运行的代码。代码从中分支`main`、开发，然后合并回到。`main`来自的部署`main`可以针对任何环境。要防止删除，请为分支启用`main`分支保护。


|  |  | 
| --- |--- |
| 命名惯例： | `main` | 

## 修补程序分支
<a name="hotfix-branch"></a>

基于主干的工作流程中没有专门的`hotfix`分支。修补程序使用`feature`分支。