- Objetivo do Projeto
- Guia Rápido
- Padrões de Branches
- Padrões de Commits
- Comandos Úteis
- Checklist antes do Commit
- Contribuindo
- Referências
- Crie uma branch a partir de
developcom nome seguindofeature/<nome>oubugfix/<nome>. - Faça commits pequenos e atômicos seguindo o formato:
tipo(escopo): descrição(ex:feat(auth): adiciona login). - Abra um Pull Request para
developcom descrição clara e checklist preenchido. - CI rodará validações de documentação; corrija problemas apontados antes do merge.
Este repositório tem como objetivo fornecer um guia completo e prático para padronização de commits e branches em projetos de desenvolvimento de software. O projeto visa:
- Padronizar mensagens de commit de forma consistente e legível
- Facilitar a navegação no histórico de mudanças
- Melhorar a colaboração entre desenvolvedores
- Automatizar processos de release e changelog
- Aumentar a qualidade e rastreabilidade do código
Este documento serve como guia de referência para manter a consistência nos commits e branches do projeto, seguindo as melhores práticas da comunidade de desenvolvimento.
main- Branch de produção, sempre estável
develop- Branch de desenvolvimento principalfeature/[nome-da-feature]- Para novas funcionalidadesbugfix/[nome-do-bug]- Para correções de bugshotfix/[nome-do-hotfix]- Para correções urgentes em produçãorelease/[versao]- Para preparação de releases
feature/user-authentication
feature/payment-integration
bugfix/login-validation-error
hotfix/security-patch
release/v1.2.0
- Criar branch a partir de
develop - Desenvolver a funcionalidade
- Commit seguindo os padrões
- Push para o repositório remoto
- Pull Request para
develop - Code Review e merge
<tipo>(<escopo>): <descrição>
<corpo do commit (opcional)>
<rodapé (opcional)>
| Tipo | Descrição |
|---|---|
feat |
Nova funcionalidade |
fix |
Correção de bug |
docs |
Documentação |
style |
Formatação, ponto e vírgula, etc (sem mudança de código) |
refactor |
Refatoração de código |
test |
Adição ou correção de testes |
chore |
Tarefas de manutenção (build, dependências, etc) |
perf |
Melhoria de performance |
ci |
Mudanças na integração contínua |
build |
Mudanças no sistema de build |
revert |
Reversão de commit anterior |
- Máximo 50 caracteres
- Presente do imperativo (ex: "adiciona" não "adicionado")
- Primeira letra minúscula
- Sem ponto final
- Máximo 72 caracteres por linha
- Explique o QUE e PORQUÊ, não o COMO
- Use presente do imperativo
- Breaking changes:
BREAKING CHANGE: <descrição> - Issues:
Closes #123ouFixes #456
feat(auth): adiciona sistema de login com JWT
fix(api): corrige erro de validação no endpoint de usuários
O campo email não estava sendo validado corretamente,
permitindo emails inválidos no banco de dados.
feat(api): atualiza estrutura da resposta da API
BREAKING CHANGE: A resposta da API agora retorna dados em formato diferente.
Clientes precisam atualizar para a nova estrutura.
fix(frontend): resolve problema de loading infinito
Fixes #142
auth- Autenticação e autorizaçãoapi- API e endpointsfrontend- Interface do usuáriobackend- Lógica do servidordatabase- Banco de dadosconfig- Configuraçõessecurity- Segurançaperformance- Performanceui- Interface do usuárioux- Experiência do usuário
# Configurar nome e email
git config --global user.name "Seu Nome"
git config --global user.email "seu.email@example.com"
# Configurar editor padrão
git config --global core.editor "code --wait"# Criar nova branch
git checkout -b feature/nova-funcionalidade
# Adicionar mudanças
git add .
# Commit com mensagem
git commit -m "feat(auth): adiciona sistema de login"
# Push para repositório remoto
git push origin feature/nova-funcionalidade
# Voltar para develop
git checkout develop
# Atualizar develop
git pull origin develop
# Deletar branch local após merge
git branch -d feature/nova-funcionalidade# Ver histórico de commits
git log --oneline --graph
# Alterar último commit
git commit --amend -m "nova mensagem"
# Fazer rebase interativo
git rebase -i HEAD~3
# Resetar último commit (mantém mudanças)
git reset --soft HEAD~1
# Stash (guardar mudanças temporariamente)
git stash
git stash pop- Código está funcionando corretamente?
- Testes estão passando?
- Commit message segue o padrão?
- Não há arquivos desnecessários (logs, node_modules, etc)?
- Não há informações sensíveis (senhas, tokens)?
- Mudanças estão em uma branch adequada?
- ❌ Commits muito grandes com muitas mudanças
- ❌ Mensagens vagas como "fix bug" ou "update code"
- ❌ Commits direto na main/master
- ❌ Não testar antes do commit
- ❌ Incluir arquivos temporários ou de configuração local
- ❌ Misturar diferentes tipos de mudanças em um commit
- Histórico claro: Facilita a compreensão do que foi alterado e quando
- Busca eficiente: Permite encontrar mudanças específicas rapidamente
- Debugging: Ajuda a identificar a origem de bugs e problemas
- Comunicação: Mensagens padronizadas facilitam o entendimento entre a equipe
- Code Review: Revisores conseguem entender o contexto das mudanças
- Onboarding: Novos membros da equipe se adaptam mais rapidamente
- Changelog: Geração automática de logs de mudanças
- Versionamento: Automação de bumps de versão baseados no tipo de commit
- CI/CD: Triggers automáticos para diferentes tipos de mudanças
- Análise: Possibilita análise de tipos de mudanças mais frequentes
- Produtividade: Métricas sobre entrega e qualidade do código
- Tendências: Identificação de padrões no desenvolvimento