---
# System prepended metadata

title: Histórico de Versões

---

# Histórico de Versões

| Data | Versão | Autor(a) | Descrição |
| - | - | - | - |
| 30/08/2019 | 0.1 |Natália Rodrigues | Documentação da política de branches e demais definições a respeito do Git Flow. |
|03/09/2019 | 0.2 | Natália Rodrigues | Fluxo de adição de documentos. |


# Índice

* [1. Estrutura de branches](#1.-Estrutura-de-branches)
* [2. Padrões definidos](#2.-Padrões-definidos)
    * [2.1. Nomes de branches](#2.1.-Nomes-de-branches)
    * [2.2. Commits](#2.2.-Commits)
    * [2.3. Fluxo de adição de uma nova funcionalidade](#2.3.-Fluxo-de-adição-de-uma-nova-funcionalidade)
    * [2.4. Fluxo de adição de documentos](#2.4.-Fluxo-de-adição-de-documentos)
* [3. Referências](#3.-Referências)
    

# 1. Estrutura de branches

A estrutura de branches do repositório seguirá a organização definida a seguir:

* branch padrão **_master_**, para hospedar o código estável do projeto (que estará em ambiente de produção); 
* branches **_release/*_**, para  abrigar as versões do código em estágio de preparação para serem colocadas em produção; 
* branch **_develop_**, para manter o código mais atualizado do projeto, que está em estágio preparatório para a próxima entrega (onde serão integradas as funcionalidades desenvolvidas); 
* branches **_feature/*_**, nas quais serão desenvolvidas as novas funcionalidades; 
* branches **_hotfix/*_**, que servirão para correção de eventuais bugs encontrados em produção.
* branches **_docs/*_**, que serão utilizadas para o desenvolvimento da documentação do projeto.


# 2. Padrões definidos

## 2.1. Nomes de branches

Em Inglês, letras minúsculas, palavras separadas por '-', respeitando o padrão gitflow. 

Ex: _feature/cadastro-usuario_


## 2.2. Commits

Em Inglês, verbo no gerúndio com descrição do que foi feito, com ponto no final da frase e co-authored para as pessoas no pareamento (usar _git commit -s_). 

Ex:

_Implementing user register._

_Co-authored-by: Natália Rodrigues <nataliamrq@gmail.com\>_


## 2.3. Fluxo de adição de uma nova funcionalidade

#### 1. Criar a branch para a nova funcionalidade a partir de _develop_

Na branch _develop_ (atualizada):

`git checkout -b feature/new-feature`

#### 2. Implementar a nova funcionalidade
#### 3. Fazer o merge da branch _develop_ para a branch da nova funcionalidade

Na branch _feature/new-feature_:

 `git fetch`
`git merge develop`

ou

`git pull origin develop`

#### 4. Resolver os conflitos e subir as alterações

`git push origin feature/new-feature`

#### 5. Abrir o Pull Request da branch _feature/new-feature_ para a branch _develop_


## 2.4. Fluxo de adição de documentos

#### 1. Criar a branch para o novo documento a partir de _master_

Na branch _master_ (atualizada):

`git checkout -b docs/new-docs`

#### 2. Produzir o(s) documento(s)

Adicione o(s) documento(s) criado(s) em markdown na pasta docs e os links para ele(s) no arquivo _sidebar.md

#### 3. Fazer o merge da branch _master_ para a branch do(s) novo(s) documento(s)

Na branch _docs/new-docs_:

 `git fetch`
`git merge master`

ou

`git pull origin master`

#### 4. Resolver os conflitos e subir as alterações

`git push origin docs/new-docs`

#### 5. Abrir o Pull Request da branch _docs/new-docs_ para a branch _master_


# 3. Referências

* https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
* https://fjorgemota.com/git-flow-uma-forma-legal-de-organizar-repositorios-git/