diff --git a/README.md b/README.md
index e36e5bc20adc954897c7e96f650f7f0998a6dd16..248b59ff9c5fc1d0f57604a2f2ed41d0cb299b89 100644
--- a/README.md
+++ b/README.md
@@ -65,3 +65,226 @@ docker-compose up -d
 ```
 
 Isso criará um ambiente pronto para desenvolvimento, permitindo iniciar a implementação do backend imediatamente.
+
+
+## Fluxo do git
+
+
+Este documento descreve o fluxo de trabalho recomendando para gerenciar branches e commits em um projeto usando Git.
+
+  
+
+### Passos
+
+  
+
+#### 1. Pegar a Issue
+
+Decida qual issue você irá trabalhar. Verifique as tarefas e determine qual delas você será responsável.
+
+  
+
+#### 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`:
+
+```bash
+
+git checkout develop
+
+```
+
+  
+
+2. Atualize a branch `develop` com as últimas alterações do repositório remoto:
+
+```bash
+
+git pull origin develop
+
+```
+
+  
+
+
+3. Criar e mudar para uma nova branch seguindo o padrão da issue 
+
+Ao iniciar o desenvolvimento, crie uma nova branch nomeada conforme o padrão abaixo:
+
+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, são de escolha pessoal, mas devem descrever de forma objetiva o que está sendo feito. Isso permite que, à primeira vista, qualquer pessoa entenda o propósito da branch.  
+
+**Exemplo:**
+
+issue-256/fix-login-form
+```bash
+
+git checkout -B issue-<número_da_issue>/<palavras-chaves>
+
+```
+
+  
+
+#### 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:
+
+```bash
+
+git add .
+
+```
+> **💡 Dica:**  
+> O comando ```git add -A``` é mais confiável que o ```git add .```, pois o segundo refere-se somente a pasta atual e suas subpastas.
+  
+
+2. Faça o commit das alterações:
+
+```bash
+
+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ó, facilitando o entendimento do histórico de commits.
+
+  
+
+1. Vá para a branch `develop`:
+
+```bash
+
+git checkout develop
+
+```
+
+  
+
+2. Atualize a branch `develop`:
+
+```bash
+
+git pull origin develop
+
+```
+
+  
+
+3. Volte para sua branch de desenvolvimento:
+
+```bash
+
+git checkout nome-da-branch
+
+```
+> **💡 Dica:**  
+> O comando ```git checkout -``` volta para a última branch acessada. Isso pode facilitar a navegação.
+
+  
+
+
+4. Rebase da branch em relação à `develop` 
+
+Antes de incorporar alterações da `develop`, primeiro consolidamos nossos commits em um único, sem puxar mudanças (ou possíveis conflitos). Para isso, execute:  
+
+```bash
+git rebase -i develop --keep-base
+```
+Isso abrirá uma tela no seu 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>` 
+    
+	 - 3.1. **Se estiver correto**: Basta salvar e fechar seu editor.
+	 - 3.2. **Se estiver errado**: troque "pick" para "r" (de rename), salve e feche o editor. Um novo editor irá abrir somente com o nome do commit a ser alterado. Efetivamente transformando todos os commits em um só.
+    
+
+##### 🔹 Palavras de Poder
+
+Use uma das palavras-chave abaixo para indicar a natureza da mudança:
+
+-   `Add`
+-   `Change`
+-   `Deprecate`
+-   `Remove`
+-   `Fix`
+-   `Security`
+
+Essas palavras seguem o padrão [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
+
+##### 📌 Exemplo de commit correto:
+
+`Issue #256: FIX form login was not working when Enter was pressed`
+
+
+5. Caso ocorram conflitos, resolva-os. Após resolver, use:
+
+```bash
+
+git add -A
+
+git rebase --continue
+
+```
+> **💡 Dica:**  
+> O VSCode possui uma interface que ajuda muito nessa hora!
+  
+  6. Execute o comando que efetivamente puxará as atualizações da `develop`:
+
+```bash
+git rebase -i develop
+```
+
+Se o passo 5 foi executado corretamente, aqui basta salvar a tela que abrirá do seu editor. Se houverem conflitos, resolva-os, senão, a mensagem de `Successfully rebased and updated` aparecerá. 
+
+Como uma possível referência do processo, [este link](https://adamj.eu/tech/2022/03/25/how-to-squash-and-rebase-a-git-branch/) pode ser útil.
+
+#### 7. Push e Pull Request (PR)
+
+Depois de finalizar o trabalho, envie sua branch para o repositório remoto e abra um Merge Request (MR, também chamado de Pull Request pelo github) para revisão de código.
+
+  
+
+1. Envie a branch para o repositório remoto:
+
+```bash
+
+git push origin nome-da-branch -f
+
+```
+> **💡 Dica:**  
+>A flag '-f' vem de "force" e deve ser usada para informar o git que você sabe o que está fazendo, pois com o rebase os commits estarão fora de sincronia.
+
+Verifique se sua branch está com 0 commits atrás da develop e 1 commit na frente da develop, isso é indicado na aba "branchs" do gitlab pela notação `0|1` ao lado do nome da sua branch.
+
+2. Abra um Merge Request (MR) no repositório remoto para revisão de código.
+
+  
+
+---
+
+  
+
+Esse fluxo de trabalho ajuda a manter o histórico do Git limpo, organiza as alterações de forma eficiente e facilita a colaboração em equipe. Esse fluxo é **obrigatório** dentro do C3SL e não deve ser alterado sem existir motivo maior de organização de código e fluxo de trabalho.
\ No newline at end of file