Padrão de versionamento: Gitflow - gabrafo/ohara-imoveis GitHub Wiki
Este documento apresenta um fluxo de trabalho simples e eficaz para o gerenciamento de código-fonte com Git. O objetivo é organizar o desenvolvimento de novas funcionalidades (features) de forma isolada, assegurando que a branch principal de desenvolvimento (develop
) permaneça estável e operante.
Princípios Básicos
- Fonte da Verdade: A branch
develop
contém o código mais recente que está sendo preparado para o próximo lançamento. Ela deve permanecer em estado compilável e funcional. - Isolamento: Todo desenvolvimento (funcionalidade, correção ou melhoria) ocorre em uma branch separada, denominada feature branch.
- Integração via Merge/Pull Request: Uma feature branch somente é integrada novamente à
develop
após conclusão, testes e, preferencialmente, revisão por outro membro da equipe.
1. Fluxo Passo a Passo
A seguir descreve-se o ciclo de vida de uma nova funcionalidade, desde a criação até a integração.
develop
Local
1.1. Sincronizar a Branch Antes de iniciar qualquer trabalho, deve-se garantir que a branch develop
local esteja sincronizada com o repositório remoto.
# Trocar para a branch develop
git checkout develop
# Obter as atualizações mais recentes do servidor remoto
git pull origin develop
1.2. Criar a Feature Branch
Cria-se uma nova branch a partir da develop
. O nome deve ser descritivo e seguir o padrão feat/<nome-da-feature>
.
# Criar e alternar para a nova branch em um único comando
git checkout -b feat/login-com-google
Substituir
login-com-google
pelo identificador da funcionalidade em desenvolvimento.
1.3. Desenvolver na Feature Branch
Com o ambiente isolado, são permitidas criações, edições e testes de código sem impactar o trabalho de outros colaboradores.
- Commits devem ser pequenos e possuir mensagens claras que expliquem o que e por que determinada alteração foi realizada.
# Adicionar arquivos modificados
git add .
# Registrar as alterações
git commit -m "feat: adiciona botão de login com Google na tela inicial"
# ... continuar trabalhando e realizando novos commits ...
1.4. Enviar a Branch para o Repositório Remoto
Após concluir a funcionalidade (ou para salvar progresso), a branch é enviada ao repositório remoto.
# Primeiro envio (-u cria o vínculo com a branch remota)
git push -u origin feat/login-com-google
# Envios subsequentes podem utilizar apenas
git push
1.5. Abrir um Pull Request (PR) / Merge Request (MR)
Com a branch no servidor, deve-se abrir um Pull Request na interface do serviço Git (GitHub, GitLab, etc.).
- De:
feat/login-com-google
- Para:
develop
No Pull Request, descrevem-se as alterações realizadas. É neste momento que testes automatizados (CI/CD) são executados e que a equipe pode revisar o código, sugerir melhorias e aprovar a integração.
1.6. Integrar (Merge) o Pull Request
Após aprovação (e com todos os testes aprovados), o Pull Request é merged, integrando o conteúdo da feat/login-com-google
à branch develop
. Normalmente esta ação é concluída pelo botão Merge disponível na interface do repositório.
1.7. Limpeza da Branch (Opcional, porém Recomendada)
Com a branch integrada, seu propósito foi cumprido. É recomendada a remoção para manter o repositório organizado.
# Voltar para a branch develop
git checkout develop
# Excluir a branch local
git branch -d feat/login-com-google
A exclusão da branch remota costuma ser realizada por meio do botão Delete branch presente no próprio Pull Request após o merge.
2. Localização dos Arquivos-fonte
Uma cópia deste texto encontra-se em /padroes-adotados
no repositório.