Git-Workflow.md
0 → 100644
| [Home](home) | [**Escopo**](escopo) | [Git Workflow](git-workflow) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [Arquitetura](arquitetura) | [Gerência](gerencia) | [Código](codigo) | [BD](Banco de Dados) | [Qualidade](qualidade) | [Frontend](frontend) | [Backend](backend) | [Analytics](analytics) | ||
| :----------: | :-------------------------------: | :------------------: | :--------------: | :--------------------------: | :--------------------: | :------------------------: | :--------------: | :---------------: | :--------------------: | :---------------: | :--------------------: | ------------: | | ||
## Sumário | ||
- [Critério de aceite](#critério-de-aceite-de-merge-requests-mr) | ||
- [GitFlow](#gitflow) | ||
- [Opções de Ferramentas](#opções-de-ferramentas) | ||
- [Comandos básicos](#comandos-b%C3%A1sicos) | ||
- [Tutoriais](#tutoriais) | ||
## Critério de aceite de Merge Requests (MR) | ||
* Branch testada | ||
* Branch atualizada com a DEV | ||
* Arquitetura Respeitada | ||
* Código Limpo | ||
* [Boas práticas atendidas](https://tools.ages.pucrs.br/) | ||
## GitFlow | ||
As atualizações da Developer serão feitos através de Pull Requests | ||
![git1](https://blog.hartleybrody.com/wp-content/uploads/2015/01/[email protected]) | ||
## 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/). | ||
## 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>` | ||
## Padrão para criação de branches | ||
As branches criadas para desenvolvimento das funcionalidades pelas squads devem seguir o padrão e de acordo com seu objetivo: | ||
Tags para os tipos de alterações: | ||
* **feat** - Nova funcionalidade | ||
* **fix** - Correção de defeito | ||
* **docs** - Alteração de documentação | ||
* **style** - Alterações visuais que não possuem alteração em codigo fonte | ||
* **refactor** - Reescrever um código para corrigir um bug ou adicionar uma nova funcionalidade | ||
* **perf** - Melhorar performance do sistema | ||
`feat/NUM_TASK-breve-descricao` | ||
Exemplo: `feat/44-cadastro-usuario` | ||
## 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: `"Compare button done - Fulano, Ciclano"` | ||
**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. | ||
# Git Workflow | ||
- 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 | ||
- Cada branch relacionada à features será criada a partir da branch development. Nos tópicos abaixo será explicado as nomenclatura que serão utilizadas para o desenvolvimento. | ||
#### Nomes | ||
- O nome da branch deve seguir o padrão **feature/nome-da-feature**, onde os nomes das features podem ser encontrados no Azure DevOps. Quando for necessário fazer alguma correção, o prefixo utilizado deverá ser **fix/nome-da-feature**. | ||
#### Criação | ||
- Para garantir que o processo de desenvolvimento esteja sempre atualizado, lembre-se de executar o seguinte comando na branch development antes de criar uma branch nova: | ||
``` | ||
git pull origin development | ||
``` | ||
- Depois da execução desse comando é necessário criar a Branch, para isso, execute o seguinte comando: | ||
``` | ||
git checkout -b <nomeDaBranch> | ||
``` | ||
### Commits | ||
- Após criar a sua branch de desenvolvimento, faça as alterações necessárias no código e commite as mudanças: | ||
- Para adicionar as mudanças é possível utilizar dois comandos: | ||
- O comando `git add .` , faz com que todas as alterações que foram feitas localmente sejam commitadas no repositório remoto. | ||
``` | ||
git add . | ||
``` | ||
- O comando `git add <nomeDoArquivo>` , faz com que apenas as alterações do arquivo informado seja commitado no repositório remoto. | ||
``` | ||
git add <nomeDoArquivo> | ||
``` | ||
- Após adicionar as alterações é necessário commitar elas usando o comando `git commit-m"comentario-do-commit"` | ||
``` | ||
git commit-m"comentario-do-commit" | ||
``` | ||
- O comentário deve descrever o que foi alterado no código. | ||
- Após, se for o primeiro commit dessa branch: | ||
``` | ||
git push --set-upstream origin nome-da-branch | ||
``` | ||
- Caso contrário utilize: | ||
``` | ||
git push | ||
``` | ||
**Importante**: Sempre envie seus commits para o repositório remoto após realizar o seu trabalho, assim os outros desenvolvedores terão sempre as ultimas atualizações do código. | ||
### Merge Requests | ||
- Depois da sua issue ter sido desenvolvida e estiver pronta de acordo com os critérios de aceitação, é necessário que a mesma seja enviada para a branch de development. | ||
- Antes de abrir a MR certifique-se que, não irá ocorrer conflitos da sua branch com a `development`, para isso, siga os seguintes passos: | ||
``` | ||
git checkout development | ||
git pull | ||
git checkout <nome-da-branch> | ||
git merge development | ||
``` | ||
- Resolva os conflitos caso ocorra, após resolvê-los, envie as alterações para o Gitlab: | ||
`git push` | ||
#### Criando o Merge Request | ||
- A criação pode ser realizada na seção Merge Requests do repositório em que a branch foi criada. Clicando no botão **New Merge Request** siga os seguintes passos: | ||
1. Selecionar a branch de origem (sua branch de desenvolvimento); | ||
2. Selecionar a branch de destino (branch development); | ||
3. Selecione **Compare branches and continue**; | ||
4. Em **Title**, escreva um título que descreva a funcionalidade adicionada ou bug corrigido; | ||
5. Em **Description**, escreva uma descrição com uma breve justificativa nos arquivos que foram alterados; | ||
6. Caso a tarefa seja visual (criação de componente/tela, correção de bug) adicione um gif exemplificando o uso (se considerar necessário); | ||
7. Na seção **Assignee**, marcar o responsável pela tarefa. | ||
8. Na seção **Reviwers**, marcar os AGES 3 (Eduardo Ballico, Leonardo Vargas Soares e Pedro Vieira). | ||
## Tutoriais | ||
* [basico-1](https://git-scm.com/book/pt-br/v1/Ramifica%C3%A7%C3%A3o-Branching-no-Git-B%C3%A1sico-de-Branch-e-Merge). | ||
* [basico-2](https://fjorgemota.com/git-sistema-de-controle-de-versoes-distribuido/). | ||
* [GitFlow](https://fjorgemota.com/git-flow-uma-forma-legal-de-organizar-repositorios-git/). | ||
\ No newline at end of file |