GitLab Flow
O Gitlab Flow é uma alternativa ao Gitflow, tendo como principais características sua simplicidade, transparência e efetividade. Esse workflow possui como branch principal a branch Main, de onde são ramificadas as Feature Branches para o desenvolvimento de novas funcionalidades da aplicação, e possui também uma branch Staging utilizada para o deploy da aplicação em um ambiente de homologação.
Ao finalizar o desenvolvimento de uma nova feature, é aberto um Merge Request de uma Feature Branch para a branch Main. O Merge Request só deve ser aprovado após passar por uma revisão e após a conclusão dos testes automatizados. Ao final de cada Sprint, é possível gerar uma tag da versão atual da branch Main e então executar um Fast-forward Merge desta branch para a branch Staging, recebendo assim a versão mais atualizada da aplicação disponível para ser analisada em um ambiente de homologação.
Passo-a-passo
Nomes para Branches
Cada nova branch deve ser aberta a partir da branch Main. Sendo assim, para manter o controle do desenvolvimento da aplicação, essas novas branches devem seguir as seguintes nomenclaturas:
- Novas funcionalidades:
feat/<cod-da-US>-<título-da-US>
- Correção de bug:
bug/<cod-da-US>-<título-da-US>
- Manutenção ou atualização do código:
chore/<cod-da-US>-<título-da-US>
- Refatoração:
refactor/<cod-da-US>-<título-da-US>
- Testes:
test/<cod-da-US>-<título-da-US>
Exemplo: feat/US05-AutenticacaoDeUsuarios
Clonando um repositório
Em sua máquina local, abra um terminal de commando no diretório desejado e insira o seguinte commando:
git clone <URL-do-repositório>
Exemplo: git clone https://tools.ages.pucrs.br/polymathech/polymathech-backend.git
Atualizando um repositório local
É sempre importante manter o repositório local atualizando, evitando assim muitos problemas indesejados durante o desenvolvimento das atividades. Esse recurso é sempre muito importante antes de serem criadas novas branches. Utilize então o seguinte comando:
git pull origin main
Caso você já esteja trabalhando em uma nova branch, seja ela compartilhada com outros desenvolvedores ou não, e queira atualizá-la em relação ao repositório remoto, é possível utilizar apenas o comando
git pull
.
Criando uma nova branch
Entre dentro do diretório do repositório recém clonado utilizando um terminal de commando na sua máquina local, e então digite o seguinte commando:
git checkout -b <nome-da-branch>
Exemplo: git checkout -b bug/US19-CorrecaoDosTestesUnitarios
Após criar sua branch, use o seguinte commando para que ela fique disponível na plataforma Tools da Ages:
git push --set-upstream origin <nome-da-branch>
Exemplo: git push --set-upstream origin bug/US19-CorrecaoDosTestesUnitarios
Commits
Ao realizar modificações importantes no código ou finalizar o desenvolvimento de uma funcionalidade da aplicação, é importante salvar as alterações feitas. Para isso realize um Commit da alterações, ou seja, crie um ponto de controle na 'história' do projeto. Para isso, navegue até a raiz do repositório no qual esteja trabalhando, abra um terminal de commando e siga os seguintes passos:
- Antes de realizar um commit, adicione um ou mais arquivos em staging (área para agrupar as alterações a serem salvas). Para isso utilize o comando
git add <nome-do-arquivo>
para adicionar um ou mais arquivos, ougit add .
para adicionar em staging todos arquivos modificados.
Exemplo: git add users-repository.ts
- Após adicionar os arquivos em staging, acrescente uma mensagem/comentário resumindo as alterações que foram realizadas utilizando o comando `git commit -m "mensagem-sobre-as-modificacoes".
Exemplo: git commit -m "Adicionando rota para cadastrar um novo usuário"
- Após realizar o commit, envie as alterações para o repositório remoto utilizando o comando
git push
.
Merge Request
Quando o desenvolvimento de uma determinada funcionalidade da aplicação estiver concluída, é necessário que essas alterações sejam enviadas para a branch Main utilizando um Merge Request. Para realizar o Merge Request primeiro verifique se não há novos commits na branch Main que não estejam na sua branch. Para isso, utilize os seguintes comandos em sua máquina local:
- Mude para a branch que esteja trabalhando:
git checkout <nome-da-branch>
Exemplo: git checkout feat/US04-RotaDeCadastroDeUsuarios
- Verifique se sua branch está atualizada em relação a branch Main:
git pull origin main
Este comando irá realizar um merge da Main para a sua branch se caso houverem novas informações na branch Main remota. Se caso houverem conflitos, resolva-os manualmente antes de ir para o próximo passo.
-
Se existirem alterações, envie elas para sua branch no repositório remoto:
git push
-
Abra o repositório remoto em seu browser, e então realize o Merge Request manualmente.
As seguintes informações são necessárias para abrir um novo Merge Request:
- Source branch:
- Target branch: main
- Título: <código-da-US>:<título-da-US>
- Descrição: <breve-descrição-da-US>
- (Opcional) Reviewer: