|
|
|
| [Home](home) | [**Escopo**](escopo) | [Git Workflow](git-workflow) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [Arquitetura](arquitetura) | [Gerência](gerencia) | [BD](Banco de Dados) | [Qualidade](qualidade) |
|
|
|
|
| :----------: | :-------------------------------: | :------------------: | :--------------: | :--------------------------: | :--------------------: | :------------------------: | :--------------: | :---------------: |
|
|
|
|
|
|
|
|
## Sumário
|
|
|
|
- [Critério de aceite de Merge Requests (MR)](#critério-de-aceite-de-merge-requests-mr)
|
|
|
|
- [Opções de Ferramentas](#opções-de-ferramentas)
|
|
|
|
- [Modelo GitFlow](#modelo-gitflow)
|
|
|
|
- [Branches protegidas](#branches-protegidas)
|
|
|
|
- [Branches não protegidas](#branches-não-protegidas)
|
|
|
|
- [Padrão para criação de branches](#padrão-para-criação-de-branches)
|
|
|
|
- [Padrão para as mensagens de commit](#padrão-para-as-mensagens-de-commit)
|
|
|
|
- [Padrão para abertura de Merge Request](#padrão-para-abertura-de-merge-request)
|
|
|
|
- [Comandos básicos](#comandos-básicos)
|
|
|
|
|
|
|
|
## Critério de aceite de Merge Requests (MR)
|
|
|
|
|
|
|
|
* Branch testada;
|
|
|
|
* Branch atualizada com a DEV;
|
|
|
|
* Arquitetura Respeitada;
|
|
|
|
* Código Limpo;
|
|
|
|
* Boas práticas atendidas.
|
|
|
|
|
|
|
|
## Opções de Ferramentas
|
|
|
|
|
|
|
|
### GitKraken
|
|
|
|
|
|
|
|
* Download do [GitKraken](https://www.gitkraken.com/download).
|
|
|
|
*essa ferramenta facilita o uso do git através de uma interface intuitiva*
|
|
|
|
|
|
|
|
### GitBash (Windows)
|
|
|
|
|
|
|
|
* Download do [GitBash](https://gitforwindows.org/).
|
|
|
|
|
|
|
|
## Modelo GitFlow
|
|
|
|
|
|
|
|
- O Gitflow é um modelo alternativo de ramificação do Git que consiste no uso de ramificações de recursos (features) e várias ramificações primárias (`main` e `development`).
|
|
|
|
|
|
|
|
![Fluxo_GIT](https://codigomaromba.files.wordpress.com/2019/01/gitflow-1.png)
|
|
|
|
|
|
|
|
## Branches protegidas
|
|
|
|
|
|
|
|
#### Main
|
|
|
|
|
|
|
|
Principal branch, aqui é onde temos todo o código de produção. Todas as novas funcionalidades que estão sendo desenvolvidas, em algum momento, serão mescladas ou associadas a Main. A branch é protegida e só pode ser alterada a partir de Merge Requests vindo diretamente da branch develop ou de branches de hotfix. Apenas AGES III e IV podem fazer merge dos MRs e realizar alterações nessa branch.
|
|
|
|
|
|
|
|
#### Develop
|
|
|
|
|
|
|
|
É a branch onde fica o código do próximo deploy. Ela serve como uma linha do tempo com os últimos desenvolvimentos, isso significa que ela possui funcionalidades que ainda não foram publicadas e que posteriormente vão ser associadas com a branch Main. Essa branch é protegida para modificação que não seja através de Merge Requests. Qualquer AGES pode criar um MR para a brach de desenvolvimento.
|
|
|
|
|
|
|
|
## Branches não protegidas
|
|
|
|
|
|
|
|
#### Feature
|
|
|
|
|
|
|
|
São branches utilizadas para o desenvolvimento de funcionalidades específicas. É importante saber que essas branches são criadas sempre a partir da branch develop. Portanto, quando finalizada, elas são removidas após realizar o merge com a branch develop.
|
|
|
|
|
|
|
|
#### Fix
|
|
|
|
|
|
|
|
É uma branch para correção de bugs identificados ainda em desenvolvimento. Após o merge com a develop elas são removidas.
|
|
|
|
|
|
|
|
#### Hotflix
|
|
|
|
|
|
|
|
É uma branch criada a partir da main para realizar correções imediatas encontradas no sistema em produção. Quando concluída, ela é excluída após realizar o merge com as branches main e develop.
|
|
|
|
|
|
|
|
#### Chore
|
|
|
|
É uma branch para configuração. O padrão de nomenclatura é chore/ onde representa uma breve descrição do que está sendo configurado nessa branch. Exemplo: chore/pipeline-ci.
|
|
|
|
|
|
|
|
## Padrão para criação de branches
|
|
|
|
As branches criadas para desenvolvimento das funcionalidades pelas squads devem seguir o padrão de acordo com seu objetivo:
|
|
|
|
|
|
|
|
Tags para os tipos de alterações:
|
|
|
|
|
|
|
|
* **feature** - Nova funcionalidade
|
|
|
|
* **fix** - Correção de defeito
|
|
|
|
* **hotflix** - Correção de bug em produção
|
|
|
|
* **chore** - Configuração
|
|
|
|
|
|
|
|
`feature/NUMERO_TASK_BREVE_DESCRICAO`
|
|
|
|
|
|
|
|
Exemplo: `feature/US_01_Feed_Destaques`
|
|
|
|
|
|
|
|
## Padrão para as mensagens de commit
|
|
|
|
Os commits deverão ter um padrão em suas mensagens para facilitar o entendimento da equipe no que foi desenvolvido:
|
|
|
|
|
|
|
|
`"Descrição breve do commit - Autores (caso realizado em equipe)"`
|
|
|
|
|
|
|
|
Exemplo: `"Feed Destaques - Autores: Felipe Baptista e Gabriel Spiandorello"`
|
|
|
|
|
|
|
|
**OBS:** Caso as atividades do commit tenham sido realizadas individualmente não é necessário informar os autores, porque a única pessoa envolvida será quem está subindo o commit.
|
|
|
|
|
|
|
|
## Padrão para abertura de Merge Request
|
|
|
|
Todo MR deve ter obrigatoriamente a aprovação de um AGES III ou de um AGES IV antes de ser mergeada para a develop. Os merge requests também devem seguir um padrão de criação:
|
|
|
|
|
|
|
|
O Title deve ser escrito `US XX - Título do Card no Azure` e na Description deve ser informado o link para o card.
|
|
|
|
Exemplo:
|
|
|
|
```
|
|
|
|
Title: US 01 - Feed Destaques
|
|
|
|
Description: link do card do Azure
|
|
|
|
```
|
|
|
|
## Comandos básicos
|
|
|
|
|
|
|
|
* clonar um repositório:
|
|
|
|
`git clone ADICIONAR URL`
|
|
|
|
* verificar o status do repositório:
|
|
|
|
`git status`
|
|
|
|
* CRIAR uma nova branch:
|
|
|
|
`git checkout -b <branch desejada>`
|
|
|
|
* ALTERNAR para uma branch:
|
|
|
|
`git checkout <branch desejada>`
|
|
|
|
* add arquivos alterados e dar um commit na branch:
|
|
|
|
`git commit -a -m 'adicionei um novo rodapé [issue 53]'`
|
|
|
|
* primeira vez a enviar os dados para o repositório.
|
|
|
|
`git push origin <branch desejada>`
|
|
|
|
* reenviar os dados para o repositório.
|
|
|
|
`git push`
|
|
|
|
* baixar os dados do repositório.
|
|
|
|
`git pull`
|
|
|
|
* fazer um merge em duas branch's.
|
|
|
|
`git merge <nome da branch>` |
|
|
|
\ No newline at end of file |