# 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/