Fluxo do Git

Guia de como usar Git no projeto: branches, commits, rebase e merge requests.

Guia de Fluxo de Trabalho

1. Selecionar uma Issue

Escolha uma issue entre as que estão atribuídas a você. Verifique as tarefas e determine qual delas será sua responsabilidade.


2. Criar uma Branch a partir da develop

Certifique-se de que a branch develop está atualizada antes de criar sua nova branch.

  1. Vá para a branch develop:
git checkout develop
  1. Atualize a branch develop com as últimas alterações do repositório remoto:
git pull origin develop
  1. Criar e mudar para uma nova branch seguindo o padrão da issue:
issue-<número_da_issue>/<palavras-chave>

📌 Por que usar esse padrão?

  • Cada issue no GitLab recebe automaticamente um número único.
  • Esse número deve estar presente no nome da branch para facilitar a rastreabilidade.
  • As palavras-chave, separadas exclusivamente por hífens, descrevem de forma objetiva o que está sendo feito.

Exemplo:

issue-256/fix-login-form

Criação da branch:

git checkout -B issue-<número_da_issue>/<palavras-chave>

3. Desenvolver a Feature na Branch

Faça as alterações necessárias para resolver a issue. Lembre-se de fazer commits pequenos e descritivos.

  1. Adicione as alterações ao índice:
git add .

💡 Dica: O comando git add -A é mais confiável que o git add ., pois o segundo refere-se somente à pasta atual e suas subpastas.

  1. Faça o commit das alterações:
git commit -m "breve descrição"

4. Rebase da develop para Sua Branch

Antes de finalizar o trabalho, faça um rebase para garantir que sua branch esteja atualizada com as últimas mudanças da develop e para transformar todos seus commits em um só.

  1. Vá para a branch develop:
git checkout develop
  1. Atualize a branch develop:
git pull origin develop
  1. Volte para sua branch de desenvolvimento:
git checkout nome-da-branch

💡 Dica: O comando git checkout - volta para a última branch acessada.

  1. Rebase da branch em relação à develop:
git rebase -i develop

Isso abrirá uma tela no editor com a lista de commits da sua branch, todos precedidos por "pick".

✏️ Como editar os commits?

  1. Mantenha pick apenas no primeiro commit.
  2. Altere todos os demais para f (de fixup), consolidando-os no primeiro.
  3. Verifique se a mensagem do primeiro commit está correta, seguindo o formato:
Issue #<número_da_issue>: <Palavra de Poder> <descrição do que foi feito, em inglês>
  • Se estiver correto: basta salvar e fechar o editor.
  • Se estiver errado: troque pick para r (reword), salve e feche o editor. Um novo editor irá abrir somente com o nome do commit a ser alterado.

🔹 Palavras de Poder

Use uma das palavras abaixo para indicar a natureza da mudança:

  • Add
  • Change
  • Deprecate
  • Remove
  • Fix
  • Security

Essas palavras seguem o padrão Keep a Changelog.


📌 Exemplo de commit correto

Issue #256: Fix login form was not working when Enter was pressed

Conflitos durante o rebase

Caso ocorram conflitos, resolva-os e depois:

git add -A
git rebase --continue

💡 Dica: O VSCode possui uma interface que ajuda muito nessa hora!


5. Push e Merge Request (MR)

Depois de finalizar o trabalho, envie sua branch para o repositório remoto e abra um Merge Request (MR) para revisão de código.

  1. Envie a branch para o repositório remoto:
git push origin nome-da-branch -f

💡 Dica: A flag -f (force) deve ser usada porque após o rebase o histórico foi reescrito.

  1. Verifique se sua branch está com 0 commits atrás da develop e 1 commit à frente da develop. Isso é indicado no GitLab pela notação 0|1 ao lado do nome da branch.

  2. Abra o Merge Request (MR) no GitLab para revisão de código. Inclua uma descrição clara (o quê e por quê) e cite impactos (ex.: variáveis .env, migrações).


Conclusão

Esse fluxo de trabalho:

  • Mantém o histórico do Git limpo (1 commit por issue).
  • Organiza as alterações de forma eficiente.
  • Facilita a colaboração em equipe, revisões e criação de releases.

Este fluxo é obrigatório dentro do C3SL e não deve ser alterado sem um motivo justificado de organização de código e fluxo de trabalho.


Guia rápido para criar uma Tag de Release

Para gerar uma nova Release e disparar o CI, basta criar e enviar a tag:

git tag vX.X.X
git push origin vX.X.X

Substitua vX.X.X pela versão desejada (ex.: v1.0.0). Isso acionará os jobs de release e criação de imagens no pipeline.

Última modificação September 15, 2025: Issue #358: FIX input cleanups after submition (b78e42a)