

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Filiais em uma estratégia Gitflow
<a name="branches-in-a-gitflow-strategy"></a>

Uma estratégia de ramificação do Gitflow geralmente tem as seguintes ramificações.



![\[As filiais e ambientes em uma estratégia de ramificação do Gitflow.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/choosing-git-branch-approach/images/gitflow-branching-strategy.png)


## ramificação de recursos
<a name="feature-branch"></a>

`Feature`filiais são filiais de curto prazo nas quais você desenvolve recursos. A `feature` ramificação é criada pela ramificação da `develop` ramificação. Os desenvolvedores iteram, confirmam e testam o código na `feature` ramificação. Quando o recurso é concluído, o desenvolvedor promove o recurso. Há apenas dois caminhos a partir de uma ramificação de recursos:
+ Mesclar com a filial `sandbox`
+ Crie uma solicitação de mesclagem na filial `develop`


|  |  | 
| --- |--- |
| Convenção de nomenclatura: | `feature/<story number>_<developer initials>_<descriptor>` | 
| Exemplo de convenção de nomenclatura: | `feature/123456_MS_Implement_Feature_A` | 

## filial de sandbox
<a name="sandbox-branch"></a>

A `sandbox` filial é uma ramificação não padrão de curto prazo do Gitflow. No entanto, é útil para o desenvolvimento de CI/CD tubulações. A `sandbox` filial é usada principalmente para os seguintes propósitos:
+ Execute uma implantação completa no ambiente sandbox usando os CI/CD pipelines em vez de uma implantação manual.
+ Desenvolva e teste um pipeline antes de enviar solicitações de mesclagem para testes completos em um ambiente inferior, como desenvolvimento ou teste.

`Sandbox`os galhos são de natureza temporária e não devem ter vida longa. Eles devem ser excluídos após a conclusão do teste específico.


|  |  | 
| --- |--- |
| Convenção de nomenclatura: | `sandbox/<story number>_<developer initials>_<descriptor>` | 
| Exemplo de convenção de nomenclatura: | `sandbox/123456_MS_Test_Pipeline_Deploy` | 

## desenvolver filial
<a name="develop-branch"></a>

A `develop` filial é uma filial de longa duração em que os recursos são integrados, criados, validados e implantados no ambiente de desenvolvimento. Todas as `feature` filiais são mescladas na `develop` ramificação. As fusões na `develop` ramificação são concluídas por meio de uma solicitação de mesclagem que requer uma compilação bem-sucedida e duas aprovações do desenvolvedor. Para evitar a exclusão, ative a proteção da ramificação na `develop` ramificação.


|  |  | 
| --- |--- |
| Convenção de nomenclatura: | `develop` | 

## ramificação de lançamento
<a name="release-branch"></a>

No Gitflow, `release` filiais são filiais de curto prazo. Essas ramificações são especiais porque você pode implantá-las em vários ambientes, adotando a metodologia de criar uma vez e implantar muitos. `Release`as filiais podem ter como alvo os ambientes de teste, preparação ou produção. Depois que uma equipe de desenvolvimento decidiu promover recursos em ambientes superiores, eles criam uma nova `release` ramificação e usam incrementar o número da versão da versão anterior. Nos portões de cada ambiente, as implantações exigem aprovações manuais para prosseguir. `Release`as filiais devem exigir que uma solicitação de mesclagem seja alterada.

Depois que a `release` ramificação for implantada na produção, ela deverá ser mesclada novamente às `main` ramificações `develop` e para garantir que quaisquer correções de bugs ou hotfixes sejam incorporados novamente aos esforços futuros de desenvolvimento.


|  |  | 
| --- |--- |
| Convenção de nomenclatura: | `release/v{major}.{minor}` | 
| Exemplo de convenção de nomenclatura: | `release/v1.0` | 

## ramificação principal
<a name="main-branch"></a>

A `main` ramificação é uma ramificação de longa duração que sempre representa o código que está sendo executado na produção. O código é mesclado automaticamente na `main` ramificação de uma ramificação de lançamento após uma implantação bem-sucedida do pipeline de lançamento. Para evitar a exclusão, ative a proteção da ramificação na `main` ramificação.


|  |  | 
| --- |--- |
| Convenção de nomenclatura: | `main` | 

## ramificação de correção de bugs
<a name="bugfix-branch"></a>

A `bugfix` ramificação é uma ramificação de curto prazo usada para corrigir problemas em ramificações de lançamento que não foram lançadas para produção. Uma `bugfix` ramificação só deve ser usada para promover correções em `release` ramificações para os ambientes de teste, preparação ou produção. Um `bugfix` galho é sempre ramificado de um `release` galho.

Depois que a correção de bug for testada, ela poderá ser promovida para a `release` ramificação por meio de uma solicitação de mesclagem. Em seguida, você pode empurrar a `release` ramificação para frente seguindo o processo de liberação padrão.


|  |  | 
| --- |--- |
| Convenção de nomenclatura: | `bugfix/<ticket>_<developer initials>_<descriptor>` | 
| Exemplo de convenção de nomenclatura: | `bugfix/123456_MS_Fix_Problem_A` | 

## ramificação de hotfix
<a name="hotfix-branch"></a>

A `hotfix` filial é uma filial de curto prazo usada para corrigir problemas na produção. Ele só pode ser usado para promover correções que devem ser aceleradas para chegar ao ambiente de produção. Um `hotfix` galho é sempre ramificado. `main`

Depois que o hotfix for testado, você poderá promovê-lo para produção por meio de uma solicitação de mesclagem na `release` ramificação a partir da qual foi criada. `main` Para testar, você pode então empurrar a `release` ramificação para frente seguindo o processo de liberação padrão.


|  |  | 
| --- |--- |
| Convenção de nomenclatura: | `hotfix/<ticket>_<developer initials>_<descriptor>` | 
| Exemplo de convenção de nomenclatura: | `hotfix/123456_MS_Fix_Problem_A` | 